None of this make much sense. For starters,
On Windows 7, every program run in the batch file will be on a separate thread/CPU and the entire batch file will be multi-threaded.
The semantics of batch files is that every statement runs sequentially. This cannot be changed because all existing batch files assume that the previous line has completed processing, and the next one can use its results. Consequently, it doesn't make any sense to "multi-thread" a batch file, since it's entirely sequential.
Additionally, batch files spawn processes, not threads, so "multithreaded" is a misnomer here in any case.
Also on Windows 7+, .NET applications automatically put certain parts (UI for Windows Forms, garbage collector, etc.) on separate threads.
Okay, now you really don't know what you're talking about. First of all, .NET is not really tied to Windows, and it has the same behavior regardless of which version it runs on. Second, GC always runs on a separate thread, and this has been the case since 1.0. Third, WinForms is a Win32 wrapper, and as such it has to run on the main thread, which is trivially observable in debugger - and nothing has changed here in Win7 or any recent .NET version.