There are two options for this, neither one is simple. If you're looking for a check box to check there's no such solution, you're asking for something rather complicated and while possible it'll be a lot of work.
a) you can use address lists tied to user profiles to get people's IPs on firewall address lists on login. Then use those in mangle to mark the packes, and then use PCQ queue trees tied to global-in or global-out to override the simple queues. A PCQ queue with 512k up/down per user tied to a queue tree with 512k up/down would effectively give a single user 512k, when a second user logs in everyone gets 256k. Downside: not very dynamic since you have to prepare the mangle rules and queues for each user account separately. If you have lots of user accounts to do this for the router is going to slow to a crawl with all those mangle rules. You can see http://mum.mikrotik.com/presentations/U ... xWindt.pdf
for more details.
b) write a RADIUS solution (User Manager won't do for this) that uses hooks to send out CoA packets to the router changing user's rate limits on the fly. See http://wiki.mikrotik.com/wiki/Manual:RA ... horization
for details. This is very scalable, but will require you to do custom programming on your RADIUS server. FreeRADIUS could definitely do this, but there's no boxed solution available.
Specific answers require specific questions. When in doubt, post the output of "/ip address print detail", "/ip route print detail", "/interface print detail", "/ip firewall export", and an accurate network diagram.