<p>I'm writing an app that will need to make use of <code>Timer</code>s, but potentially very many of them.  How scalable is the <code>System.Threading.Timer</code> class?  The documentation merely say it's "lightweight", but doesn't explain further.  Do these timers get sucked into a single thread (or very small threadpool) that processes all the callbacks on behalf of a <code>Timer</code>, or does each <code>Timer</code> have its own thread?  </p>

<p>I guess another way to rephrase the question is: How is <code>System.Threading.Timer</code> implemented?</p>

I think you might want to rethink your design (that is, if you have control over the design yourself). If you're using so many timers that this is actually a concern for you, there's clearly some potential for consolidation there.
Here's a good article from MSDN Magazine from a few years ago that compares the three available timer classes, and gives some insight into their implementations:
http://msdn.microsoft.com/en-us/magazine/cc164015.aspx