It should work at 1000 Hz (in all likelihood you'd need to replace '0' in the interrupt condition with a positive number, e.g. 10, and check durationSeconds to avoid division by zero), but you probably mean 1000 kHz - I am sorry, but I don't think this can be achieved in managed code.
Yes, sorry about that. I meant 1000kHz (1MHz).
Stefan W. is completely right; the actual limit is significantly lower than 500 kHz: at 100 kHz the interrupt occurs every 10 µs, which is too fast for managed code to keep up - I don't have exact numbers right now, but execution of managed code statements takes roughly tens of µs (it is not possible to measure code execution precise enough, due to the resolution of the system clock, but I could do that with my custom firmware that has improved clock resolution 2.7 µs).
I am building your custom firmware this morning, but will it work with Netduino Plus? And if I run your custom firmware with this project, do I have a chance of achieving 1000kHz?