You can be more specific with the data you are requesting. Make sure you set the cursor
parameter correctly so you are not flooded with more data than you need.
For example, if you only want payment data for a specific account, then you should call the Payments for Account endpoint with streaming enabled.
This can be done directly using the JavaScript SDK or the Golang SDKGolang SDK, or any other SDK. There is a direct example of this using the JavaScript SDK.
If you want a higher rate-limit then you can consider running your own instance of stellar-core and horizon where you can configure the rate limit that works for you. This can be done easily with the docker quickstart image provided.
Here's some more information on the Rate Limit Exceeded error.