Micro-Controller Operating System with GUI
Basically, this question is not capable of being answered. You don't need to consider what OS you're going to use at first. First, you need to consider what kind of micro-controller you're going to be using. 

Various ARM CPUs will be perfectly capable of running a "OS" in .Net
However, AVR and PIC and such will not be able to use even the most micro of .Net frameworks. 

Second, you need to consider why you're needing to use .Net. The .Net micro framework will have a lot more overhead than a direct native program. If using .Net is only a priority because you don't want to learn C++, you probably just need to man up and learn C or C++. 

And what kind of OS are you looking for? An RTOS, or a more general purpose OS, such as Linux? You're going to have a hard time finding an OS of much complexity implemented in C#, because of the reason I said above.