You should use a traffic shaper (either directly on the machine, or up-stream). Modern shaping services like dummynet
for FreeBSD, or on Linux tc
come directly with common OSes, and they should be able to accommodate your needs:
The dummynet system facility permits the control of traffic going through the various network interfaces, by applying bandwidth and queue size lim- itations, implementing different scheduling and queue management poli- cies, and emulating delays and losses.
The big advantage over e.g. the hub is that you can exactly configure different scenarios.