YES YOU CAN!!
Like other programming languages you can take advantages of threading and parallel processing.
Scaling and Queuing PowerShell Background Jobs
You need to clear on what you want to achieve multithreading or Multi-Processing
Multithreading means running multiple threads. it is name suggests.
But it really differs if it is on uni-processor system or multi-processor system.
On a single-processor system, when running multiple threads, software scheduler performing
time-slicing on the single CPU. So only a single task is happening at any given time,
and internally scheduler is switching between tasks fast enough so that you will never notice that
there are multiple threads, etc.
On a multi-processor system, two things happening at the same time.
the need for time-slicing is reduced.
The time-slicing effect is still there, but you it is very less.
This is again handled by the OS's scheduler. That being said, with a multiprocessors system,
you can find more info below here
here
Lets come back to our agenda to running commands in parallel in powershell.
http://blogs.msdn.com/b/powershell/archive/2011/04/04/scaling-and-queuing-powershell-background-jobs.aspx