I'm not so sure why everyone seems to be down on the idea of you doing this. There are many cases that processes such as this can be substantially sped up through the use of multi threading. Some things to take into consideration though:
What is slowing the process down right now? Is the CPU the bottleneck and some cores are left unused? If so it may be a good target to make parallel, if it is disk, network or memory then you won't gain anything from splitting it across threads.
Does the order matter? Making sure that things finish in a certain order can be a pain in multi threading scenarios. If you need the results to come back in the same order as the for loop runs then you may need to figure out someway to sort them after everything has completed. With the extra processing this involves you may not gain anything.
Are there any shared resources? Will multiple threads be trying to access the same object? More importantly will they be trying to edit it (like a counter for instance)? You'll need to use locks in this case and all the time spent waiting for access may make a multi threaded solution slower than a single threaded one (or at least block more CPU resources).
Given all of these caveats though, you may find enormous benefit from a good parallel implementation. There are some libraries around which give you multithread versions of a foreach loop with very little work on your part. For example there is a Microsoft version here.