The article "Developing Multithreaded GPIB Applications in Windows NT and Windows 95" on NI developer zone has good material on developing multithreaded GPIB applications. You should become familiar with this and also the .NET thread functions.
To answer your original question, ThreadStatus contains the GPIB status value for that thread. It is equivalent to calling the GPIB function ThreadIbsta(). ProcessStatus returns the last status for that particular process.
As an example if you had a multithreaded program with two threads; thread A and thread B and thread A called a GPIB call that returned with a mask of Complete, ControllerInCharge, and Attention, then spawned thread B with called a GPIB call that returned with a mask of Complete. Afte
r these calls occurred if you called ThreadStatus from Thread A the value would be Complete, ControllerInCharge, and Attention. If you called ThreadStatus from process B the value would be Complete. If you called Process status from either thread the value would be Complete.