Yes, but it's not pretty.
High-level version of what I did.
1. Put the number of total users in a variable in the script.
2. Get the user number (assuming in this case that the user name is auto-assigned by ACT, and not input in the user table by you).
Set oUser = Test.GetCurrentUser
lLength = Len(oUser.Name)
lPosition = lLength - 8
lUserNumber = Mid(oUser.Name, 9, lLength) + 1
4. Use Timer* to keep track of the time elapsed since the test started, using global variables.
i.e. If a "TimeScriptLaunched" global you create is unassigned, assign it with the value of Timer. This way you know when the script launched.
3. Wrap the "call SendRequestX()"'s in a condition so that it won't execute the steps until a certain amount of time has passed IF the user number is over 50
If user number < 50 then run everything all the time
If user number > 50 And (Timer - TimeScriptLaunched > 5 minutes) then run everything
It should be consistent, with two caveats.
1. For some oddball reason, sometimes ACT recycles the numbers, sometimes it keeps adding...never knew why. You could work around this by establishing your own user names so it keeps using those, since you don't need them for logins.
2. Don't start it when Timer will flip over (i.e. midnight) during your test...that would cause it to behave badly unless you code around that.
*Timer = function indicating seconds since midnight.