By default the order should be based on the testsocket index so things should be behaving the way you want. The only thing I can think of is maybe your slot numbers do not always correspond directly to the testsocket index of the thread. How are you getting the slot numbers? You can see the testsocket index for a thread by looking at the "RunState.TestSockets.MyIndex" property. If you base your slot number off of this you should be getting the order you are expecting.
The way the order is determined is as follows:
If you look in the "Add TestSocket Threads to Batch" sequence in the batch process model you will see the "Add To Batch" step is using the testsocket index as the order number for the batch which is what is used to determine which testsocket enters a section first.
If your slot numbers do correpsond directly to the testsocket indices then please attach an example sequence to reproduce the problem if possible and I will try to figure out why it's not working.
Hope this helps,
-Doug