If your php has support for pcntl_fork, you could create several child threads, let them wait until a specific time, e.g. using mt_srand for each child, and then usleep(200 + mt_rand(0,200)) until the specified time is reached, for example $start = time() + 4 which is set before forking begins.
Once the specified time is past, each child will being working, within less than 1ms of each other, which should be sufficient for queries that take far longer than that. This is where you execute (and time) the query.
Just remember that each child needs to create it's own connection to the db, using new PDO, new mysqli or whatever you use.
If you're lacking pcntl_fork support in your php installation, you could achieve the same by creating a script which basically does the same thing, i.e. create a db connection, sleep until a specific time is reached, and then executes (and times) the query.
At this point you simply open up several terminals (if working locally), or several SSH connections / browser connections, and run the script in all of them. If you specify a time 1 minute in the future, you will have ample time to request the page before the query is executed, i.e.
$start = '1 minute in the future, but hardcoded, not using time()';
while ($start < time)
{
usleep(4000);
}
# execute and time query