The operations on the static ObjectFactory facade are all "thread safe". This means that you can safely call them on different threads without corrupting the internal state of the ObjectFactory.
However, what you are asking is whether each thread gets its own personal copy of the ObjectFactory, and the answer is no. Any change you make to ObjectFactory on any thread, will be reflected in all other threads within the AppDomain.
The Profiles feature is probably not the solution you are looking for. You probably want to use something like named instances:
ObjectFactory.GetInstance<ISomeService>( Session["UserType"] );
There are other potential solutions, depending on what you are trying to do. Consider posting a question about the problem you are trying to solve, ex: "how do I get different behavior based on the current user's UserType..."