I believe it's 1 apartment to 1 thread and, while there can be multiple apartments/threads at any one time, each single apartment/thread serializes requests with its message pump. So, if your running thread ID tests in a test web app, you'll see that a request may end up with the same thread id if you run it over and over again(or it may not). However, you will not see the same thread id for multiple requests at the same time. I think that's the way it works. Here's some background info I saw posted on Apartment Model threading:
http://www.techvanguards.com/com/concepts/multithreading.asp