Hans and I had small discussion recently about the subject and I'm curious how it is really implemented.
See initial talking in the comments here: Are c# timers naturally multithreaded?
Well, I did some investigations... Details are in my blog post
To be short, just summary from there: