This article offers a fairly comprehensive explanation:
“Comparing the Timer Classes in the .NET Framework Class Library” – also available as a .chm file
The specific difference appears to be that System.Timers.Timer is geared towards multithreaded applications and is therefore thread-safe via its SynchronizationObject property, whereas System.Threading.Timer is ironically not thread-safe out-of-the-box.
I don’t believe that there is a difference between the two as it pertains to how small your intervals can be.