If we sync repos (and run hooks) in parallel, then it can reduce overall sync time. A given repo should be synced only after its masters have finished syncing.
There's a patch in the following branch: https://github.com/zmedico/portage/tree/parallel-sync I've posted it for review here: https://archives.gentoo.org/gentoo-portage-dev/message/93cfc4b36abc6bab56daec15cdfb93ba
This is in the master branch now: https://gitweb.gentoo.org/proj/portage.git/commit/?id=496ff326dc18890889d1ea5d2aec590394635960
/etc/portage/repo.postsync.d/example
Correction: Released in portage-2.2.21