If you use unit tests to test multi-threaded code, you're probably doing it wrong.
For starters, you don't have any guarantees that both methods will run at a same time; this means that your tests won't guarantee that your code works.
You probably could test if your method works fine in multithreaded environment by inserting sleep commands, but that's too intrusive for unit tests; it's actually a proof of concept and not something I'd leave as unit test after I'm sure that some part of code works as intended.
Multi-threaded tests themselves are fine, to speed up unit testing when unit tests take a lot of time, but unit testing is essentialy for testing small isolated methods.
What you might consider is stress testing, but that's done "from the outside", as opposed to "from the inside" like unit tests. This means that you write a client againt your server and run it thousands of times from multiple machines, testing the whole system instead of the single isolated method. There are two main advantages to stress testing. First, stress testing is used to find exactly the type of defect which happens once in hundred runs in a real-time situation, and second, since they're done "from the outside", they better reproduce the way threads will thread through your application.
Unit tests are in my opionion as bad for testing multi-threaded code as running your code through debugger - while one thread is waiting for you to initiate next step, other thread will time out, and you'll never have the real-life repro.
To summarize, not everything should be unit tested; proof-of-concept tests are nice way of being sure that your thread-safe collection is really thread-safe, and stress testing is great for discovering bugs in multi-threaded code.