Nginx limit proxy is a module for Nginx web server that allows you to create a hosting service. You can specify bandwidth limit which will be used when downloading from a virtual server. You can set how much traffic can be used (within quarter, day, month) before server starts to block new connections.
If you have some kind of unique ID mechanism for each user, you can use it with nginx limit proxy - you may set and control specific transfer limits and bandwidth for users separately.
Entire system works in distributed architecture, so if you have multiple servers serving content, you can set settings for them all from one central server.