Using this method Assembly.Load(Byte(), Byte())
http://msdn.microsoft.com/en-us/library/twt16z2x.aspx
It is possible to provide a byte representation of the pdb file.
Given that an assembly has already been loaded is it possible to provide pdb data after the fact.
Edit: I am talking programmatically. ie not with the debugger
It is not possible in managed code.
And I have no idea how to do it in unmanaged!