If you really want to kill the thread, capture the return value from new Thread() and call myThread.Abort()
Thread myThread = new Thread(() =>
{
Application.Run(...);
}).Start();
// ...
myThread.Abort();
http://msdn.microsoft.com/en-us/library/system.threading.thread.abort.aspx
However it is preferable to end the thread cooperatively.
If you do not want to capture the thread and track it yourself, you will probably have to use the Profiling/Debugging API to enumerate threads in your process
How can I enumerate all managed threads in C#?
To learn more about cooperative threading, and about threading in general, I suggest the excellent article
http://www.albahari.com/threading/