It has threads and a way to say a chunk of code should be executed atomically. No more than that at the moment. Nor is there any explicit notion of a processor. I'm not sure how that will turn out.
Just make sure that some concurrency package eventually becomes a de facto standard. Getting C libraries that use different threading implementations to interoperate is a nightmare, and I'd hate to see Arc go the same route.
Locks seem to be on their way out.
http://research.microsoft.com/~simonpj/papers/lw-conc/index....
(The paper is also notable for giving a complete operational semantics of the system it discusses.)
(But this stuff isn't in GHC mainline, and won't be, for now, because it needs serious performance work first.)