Not really. The processors are logically distinct but they are distinct none the less. There is no foreground or background thread--they are truly peers that share physical hardware with sufficient status to preserve theirlogical separation.
On Windows you can always suspend thread with SuspendThread(), and then receive thread context with GetThreadContext(). From obtained CONTEXT structure you can get contents of any register. However I'm not sure whether it's what you are looking for or not.