In Windows world, a process is not an alternative to a thread. Process is just a new address space and security context for one or more threads. Windows thread scheduler only knows about threads. So the question would be "Why should I create a new address space and put a new thread there?".
A new process means completely new virtual address space, new security context therefore creating one requires some work. Context switch between threads on different processes requires OS to remap virtual address space and do a TLB flush. So there is a performance downside of having threads on multiple processes.
Threads on the same process are much more lightweight. They reside on the same memory space and they can share handles, security context. Switching between threads on the same process is much faster because OS only switches registers, not memory mapping.
On the other hand threads on same process are not protected against each other. Threads need to be careful on not to step on other threads' toes. If a thread crashes (unhandled exception), your process hence all other threads in that process will crash. Think of Flash plugin crashing IE. That's why Google Chrome hosts Flash in a separate process, if it crashes Chrome survives.
The performance advantage of threads is one of the reasons why Windows groups many "trusted" services in a few "svchost.exe" processes.
When your process exits, the threads you created are terminated too. If you don't want that you have to use a process.