See
http://stackoverflow.com/questions/242961/nhibernate-session-and-multithreading and various other places. Basically, the web model is based on having a single session for the web request. Because sessions aren't thread safe we'd need a completely different model for the multithreaded scenario, in which we could a) provide a different mechanism for accessing the session, and b) provide a different session for each thread. I'm sure this is achievable, but I'd question how necessary it is.
If you're reading from the session, you'd probably get better performance by using Future queries - i.e. rather than having multiple, parallel requests to the DB, ensure you have a single request that gets all the data you need. And the same is true for writes - I would expect to see better perf from batching writes than from doing lots of individual parallel writes. This is all off the top of my head though, so I'd be interested in your specific scenario if you'd like to give more detail.
Cheers