Not specifying how many jobs to run in parallel will make it default to number of cpus.
From the manual:
> -j
>
> Number of jobslots on each machine. Run up to N jobs in parallel. 0 means as many as possible. Default is 100% which will run one job per CPU on each machine.
In general this is a safe bet, but you are waiting on network, not computation. So you can easily boost up the number. I would try -j 200. It should work quite well. You can tweak this parameter to get the speed you need.
So `echo "$SITE_LIST" | parallel -j 200 backup_sites` instead of `echo "$SITE_LIST" | parallel backup_sites`