When IPSLA operations are created their start times should be distributed rather than executing all at once. This would minimize the impact on the network by having only a few IPSLA operations executing at any given moment rather than having all of them triggered every 300 seconds.
When the IPSLA operations are created they should be created with a random start time. This could be done using the "after" keyword and some randomly generated numbers when the command gets entered.
Example.
ip sla schedule 1 life forever start-time after 00:${Random(0,4)}:${Random(0,59)}
I also just found that a group schedule works even better. This distributes the IPSLA operations evenly over the 300 second window the operations run for. So only a few run at any given time rather than all of them running every 5 minuets.
Example.
ip sla group schedule 1 1-36 schedule-period 300 start-time now