Frankly I don’t think this can be done. You must have a way to verify how many users are active each time (by arp?) and which of them are downloading.
The only thing that could be of assistance is to setup in QoS for each user a reserved bandwidth and allow them to be able to reach the line maximum. In this way your users will have at least a minimum bandwidth and depending on the usage they may have some more.