What you need to consider is that each thread is a separate entity, like a real user, and that it has it's own session, but that JMeter is designed to execute these threads asynchronously, ie. in parallel. The View Results Tree listener displays all activity, from all threads as it happens regardless of the logical thread sequence. If you would rather have 1 thread make 5 iterations then simply change the thread count to 1 and use a loop of 5 and this will preserve the sequence (although this defeats the point of using a load testing tool like JMeter!).
If you do change the thread count to 1 then you can see the true, logical sequence of execution in the results tree. This will show each sampler being executed, in sequence, top down.
Now, in your case, I suspect you have a problem not because things are being run out of sequence but rather because the server is losing the session context between requests. This is very common and more often than not you can address the problem using a HTTP Cookie Manager or with the use of a Regular Expression Extractor.
answered 2012-06-22T17:23:53.560