Given the settings for JMeter that you have provided above your current output looks correct.
Perhaps the confusion here is around the exact workings of the ramp-up period and the Constant Timer as in this case these should be the only things effecting the order of execution.
The Apache JMeter site actually puts the workings of the ramp-up period best:
The ramp-up period tells JMeter how long to take to "ramp-up" to the full number of threads chosen. If 10 threads are used, and the ramp-up period is 100 seconds, then JMeter will take 100 seconds to get all 10 threads up and running. Each thread will start 10 (100/10) seconds after the previous thread was begun. If there are 30 threads and a ramp-up period of 120 seconds, then each successive thread will be delayed by 4 seconds. (https://jmeter.apache.org/usermanual/test_plan.html)
In addition, a Constant Timer provides a way for you to space out individual steps in your test plan. Importantly this is only inside each thread.
So effectively, you have a ramp up period that means a new thread is starting roughly every second. Inside each thread each request is delayed by 5 seconds each. This gives us an output roughly along the lines of:
- (Start) Thread 1 starts - Request 1 executes (pauses for 5 seconds)
- (1 sec) Thread 2 starts - Request 1 executes (pauses for 5 seconds)
- (2 sec) Thread 3 starts - Request 1 executes (pauses for 5 seconds)
- (3 sec) Thread 4 starts - Request 1 executes (pauses for 5 seconds)
- (4 sec) Thread 5 starts - Request 1 executes (pauses for 5 seconds)
- (5 sec) Thread 6 starts - Request 1 executes (pauses for 5 seconds) + Thread 1 executes Request 2.
As you can see it isn't until much later, after a block of the first request occurring, that your second requests start occurring, much along the line of the output you are seeing.
From what I understand of your question, you only ever want one request to be occurring every 5 seconds across all threads. To achieve this look at the Constant Throughput Timer. The Constant Throughput Timer has a setting that lets you share its timer across 'All Active Threads' so that you create a constant load on a server.
In order to get the order of execution at the start correct play about with the ramp-up period.