It depends for a large part on whether or not you want/need to download a full copy of your data as as one-off snapshots; or if your needs can be met with a solution that allows you to download the changes/delta's incrementally.
If you do need a full copy each time you download the data; you might benefit greatly from creating a single compressed archive on the server first and downloading that instead of recursively downloading directories and their contents.
Archives created with
zip on the Linux server are natively supported on most recent Windows versions as far as I'm aware. Alternate compression algorithms may result in better compression ratio's. Even if data is already compressed natively (such as with most audio and video codecs) partly negating that benefit, a single archive is still more efficient to download then many individual files.
Anything that will allow you to just download new and modified files will save a lot of transfer time (although with large numbers of (very small) files generating and comparing file list can be time consuming too). I have seen FTP clients that have a mirror option that only transfers the delta's, making for a minimal change in your current scheme.
rsync is the default protocol and mostly used tool in much of the UNIX world for keeping two locations synchronised and mirrored by only transferring the delta's, the files that have changed, created or deleted. As an older protocol it doesn't have native encryption and transmits data and credentials in cleartext, which is why you'll see it tunnelled over SSH in most cases. Windows clients that do rsync (over SSH) exist.
Specific product recommendations remain off-topic.