O problema que você está enfrentando é que a latência de cada solicitação individual é alta. A solução para esse problema na AWS é paralelizar as solicitações em alto grau, em vez de fazer solicitações completamente sequencialmente.
O AWS / S3 é configurado para lidar com centenas e milhares de solicitações em paralelo, sem qualquer degradação no desempenho. Isso provavelmente exigirá que você faça um pouco de programação usando a API, ou você pode obter algum benefício (duplo, triplo, ...) com sua interface de usuário confortável existente, fazendo a solicitação várias vezes em diferentes janelas para diferentes segmentos do S3. objetos.