Boolean Difference MultiThreading

I ran separately.
Possibly brep booleans are just slow and nothing can be done.

This is the case for 4 boxes and 50 spheres:

And this is after appending to one brep all the spheres. The parallel version wont change and non parallel is a bit better. But it is not the good way of doing booleans, because you do not know when the failure occurs:

It is interesting that for cutting boxes the solution is even slower. It means that it does not matter if you are cutting curved or flat surfaces, the speed is relative to face count: