This can be done with native osx tools as well. Here's a snippet I created once:
# First add a rule for all local traffic to port 80 to go into pipe 1
# 100 is the rule number which will be used for referencing the rule later
sudo ipfw add 100 pipe 1 ip from 127.0.0.1 to 127.0.0.1 dst-port http
# To display the rule use
# sudo ipfw show 100
# configure the settings of the pipe as you please
# 50kbit/s bandwidth
sudo ipfw pipe 1 config bw 50Kbit
# 200ms lag
sudo ipfw pipe 1 config delay 200ms
# 20% random packet loss
sudo ipfw pipe 1 config plr 0.2
# To display the current connections on the pipe use:
# sudo ipfw pipe 1 show
# when finished testing don't forget to delete rule and pipe
sudo ipfw delete 100
sudo ipfw pipe 1 delete
For TCP connections packet loss will translate into latency... His method of simulation is not good, though. On linux, he could (probably) emulate this properly with NetEm and some virtual interfaces, by limiting rates and introducing actual "propagation delays"
http://www.neglectedpotential.com/2012/05/slow-your-apps-rol...
PS. The sleep trick is helpful, but in addition to latency, you ideally want to experience packet loss and other weirdness.