TNet's packets all arrive on different threads. Processing of said packets is done on the main thread however -- in your Update(). When working with Unity anything that interacts with any Unity object must be executed on the main thread as Unity itself is not multi-thread safe. So from your point of view it will be as if TNet is not actually multi-threaded.
In Windward I wrote my own pathfinding script that does its logic on a separate worker thread, then posts the result to the main thread. I check in the Update -- are there any pathfinding results ready? If so, run through them and execute the associated delegate functions.