You can use scoreboard values and dummy variables.
Example
Setup:
/scoreboard objectives add Timer dummy
Run every tick:
General command, only need one
/scoreboard players remove * Timer 1
For each individual command
/scoreboard players test cmd1 Timer 0 0
v comparator or conditional (1.9) v
/your_command_here
Run to start delay:
/scoreboard players set cmd1 delay_in_20ths_of_a_second
As you can see, this is scalable for as many commands as you need.