Microsoft has released the source for a .Net VM (CLR) in the past:
http://en.wikipedia.org/wiki/Shared_Source_Common_Language_I...
It supported FreeBSD and MacOS X. This suggests it would not be impossible for them to make a multiplatform .NET in the future.