Mine runs at 99% most of the time.
During synchronisation there are loads of disk reads. A typical transaction will have several inputs. Each of those inputs will have a ring signature and a key image.
For each key image (1 per input in a transaction) the daemon needs to check the key image index to make sure that it doesn't already exist. Then it takes each ring signature, and for each output in the ring signature it needs to check that it exists, and that the amount is correct.
This is disk activity only, so all of this is over and above having to check the Merkle tree hashes, validate the signatures, verify the sum of transaction outputs, and so on. All in all it means that every single transaction will result in several disk reads - sometimes several hundred in the case of a large mixin transaction.