The thread is one out of the threadpool. There is no way to prodict which thread will be associated with the elapsed method.
Details: http://msdn.microsoft.com/en-us/library/system.timers.timer.elapsed.aspx
(And it should not matter, from a designs perspective)
Edit: Actually there is a method to define which thread is used; You can used the SynchronizingObject property of the timer:
When SynchronizingObject is null, the method that handles the Elapsed event is called on a thread from the system-thread pool. For more information on system-thread pools, see ThreadPool.
When the Elapsed event is handled by a visual Windows Forms component,
such as a button, accessing the component through the system-thread
pool might result in an exception or just might not work. Avoid this
effect by setting SynchronizingObject to a Windows Forms component,
which causes the method that handles the Elapsed event to be called on
the same thread that the component was created on.
See: http://msdn.microsoft.com/en-us/library/system.timers.timer.synchronizingobject.aspx