Yes, they can. In most operating system I'm aware of, and certainly under Windows and Linux, there is nothing that says that only one of a process's threads can run at a time. In fact the Windows scheduler pays very little attention to "which process did a thread come from?" in making its decisions. On a system with n cores, n threads can run at literally the same time. It doesn't matter if they're all from one process, from four different processes, or any combination.
For Windows you can demonstrate this easily with the "cpustres" app. You can find this in the "Windows Internals book tools", a package distributed by Mark Russinovich at the sysinternals tools site. Get your system as quiet as possible, then use cpustres to create two threads and set their "activity level" to maximum. Then check your CPU time graphs in Task Manager. Or use Process Explorer to watch the CPU time of the two threads.
The Windows Internals book includes complete information on how the scheduler (not the "task scheduler", the thread scheduler) does its job. It's a long read, but worth it. The latest version of that book covers Windows 7 but there haven't been any large changes in this area since then.