This video shows the Mono C# compiler building a sample native ObjC# application on the iPhone and then running the resulting executable on the iPhone.
Pay special attention to the beautiful error messages that our C# compiler generates.
This is using the ObjC# bindings that provide access to the Objective-C APIs from C#.
Update: better version, this one the typing with two hands and with some widgets on the screen and some events hooked up:
Of course, the iPhone is a locked platform, and chances of people being allowed to run Mono seem low.