ikrananka: So, I would run a partial update this month and the rest next month after my usage has been reset to zero again by my ISP.
One problem with that approach probably is that many of the files you are postponing to download next month have have possibly changed again, so you may need to at least run update all over again. And when you do that, then you may end up redownloading some of those already downloaded last month, as they have also changed again.
I guess there is no way around that problem, but just a warning so that you don't wonder. In the past I have sometimes had problems like if I ran gogrepo update first, and then used it to download the games a couple days later, some of the entries in the manifest were not valid anymore (can't be found on GOG servers anymore). So usually it is a good idea to run update and download quite close to each other, even on the same day.
Anyway, until Kalanyr adds this data limitation to the script, one manual way to approximately do what you are seeking to do is to edit the manifest file manually. So if I were you, I'd possibly do something like this:
1. Run a full
gogrepo.py update to get a manifest file.
2. Run
gogrepo.py download -dryrun in order to see what would be the total amount of data to be downloaded. Then estimate roughly how much of that amount of data you'd like to download this month, let's say that you feel downloading half of that data would be fine.
3. Make a backup copy of the original gog-manifest.dat, and then edit gog-manifest.dat (if you are in Windows, I highly suggest you install e.g. Notepad++ and use it to edit the file). Remove certain amount of games from the end, let's say remove all the games which start with O, and anything after that. Like the first game to remove being "Oddworld: Abe's Exodus" etc.
Pay close attention to the formatting at the end and start of the manifest file that you have all the needed square brackets at the end (and start) etc. That's also why you should keep a copy of the original manifest file, in case you make an editing error.
General instruction for editing, since the manifest file may have so many lines (depending on the amount of games you have): Shift + Ctrl + End selects everything from the current point till the end of the file, while Shift + Ctrl + Home selects everything from the current point to the start. And when you have done either (still Ctrl+Shift pressed down), just release Ctrl (still keeping Shift pressed) that you can fine-tune your selection with arrow keys, like not removing the square and wave brackets from the end of the manifest file.
4. Save the edited manifest file, and run gogrepo.py download -dryrun again. If the amount of data to be downloaded sounds ok, run download without -dryrun. If it is still too much, edit the manifest file again, removing more games.
5. Then next month you edit the manifest file by removing games from the start of the list, like trying to download only games from N to Z. Depending of the amount of data, you may have to do that in several parts, not only two.
I am routinely doing pretty much this because I keep my GOG installers on two separate 2TB USB hard drives, and the amount of data already exceeds 2TB. So I download games # => N to one USB hard drive, and O => Z to another, by editing the manifest file and running gogrepo twice.
I am wondering though, aren't there really any Windows utilities and such which would calculate the amount of data transferred, and cut all internet connectivity when that is reached? Or can such be configured even in the router? It sucks though that your ISP automatically starts charging extra if you go beyond the data cap; isn't it more common that they just slow your net connection to minimum when the limit is hit, for the rest of the month?
EDIT: Maybe some hints:
https://www.howtogeek.com/192654/how-to-monitor-your-internet-bandwidth-usage-and-avoid-exceeding-data-caps/
https://www.netlimiter.com/
Netlimiter costs money, and I didn't quite get from its feature descriptions if it is possible to block an app or even all internet connectivity based on amount of data transferred. If there was, this would be a more generic solution to your data cap problem, not only for using gogrepo.