Is there an easy way to serve low quality images for low-bandwidth users?
I don't know that there's a way to determine benchmark throughput performance on the fly without wasting a lot of the users time running a test, on every login. You could do something like:


add a field to the user profile that the user can change which dictates the speed they use
use a custom style or set of styles for all images
create a custom module to override hook_image_styles_alter() to adjust (if necessary, based on the user field value) the style to suit



  This hook allows modules to modify, add, or remove image styles. This
  may be useful to modify default styles provided by other modules or
  enforce that a specific effect is always enabled on a style. Note that
  modifications to these styles may negatively affect the user
  experience, such as if an effect is added to a style through this
  hook, the user may attempt to remove the effect but it will be
  immediately be re-added.


This way the user can determine which speed they are using, and the system should adjust the images on all subsequent logins to fit their choice