This article is from the storage FAQ part2, by Rodney D. Van Meter with numerous contributions by others.
Asynchronous transfers mean that every single byte must be acknowledged before the next can be transfered. Synchronous means that the device sending data can drop a series of transfers onto the bus, toggling REQ or ACK (as appropriate), and then sit back and wait for the corresponding pulses to return from the other device. Async transfers, involving much more waiting, are correspondingly slower. 2-4 MB/sec are good values for async transfers. Sync transfer speeds are established during a negotiation between the initiator and target, but devices are not required to use the full speed they negotiate for. This speed represents the maximum burst rate your device will use. Common values are 5 and 10 MB/sec. In practice, virtually every modern device supports synchronous transfers, but some implementations are better than others.