wies konkret geht kann ich dir nicht sagen, aber hier mal ein paar Ideen:
mach es doch ähnlich wie die SpeedTest anbieter - nur halt andersrum. Ich glaub die nehmen einen etwas dickeren Client als nen normalen Browser z.b. ein Applet oder ein Flash und übertragen dann eine datei - wobei natürlich die übertragungszeit gemessen wird (wirst wohl eine nicht-asynchrone verbindung brauchen).
allerdings rate ich dir eher dazu einfach zwei Buttons/Links für die unterschiedliche Qualität zu machen - ist für dich einfacher, leichter und weniger fehleranfällig.
es könnte vielleicht so gehen (ähnlich wie oben beschreiben):
du machst für jeden user in der datenbank einen eintrag(der danach wieder gelöscht wird) ind dem du 2 zeiten speicherst. wenn er auf die eingangsseite kommt die eine zeit. dann lässt du auf der eingangseite ein flash o.ä. laufen das eine bekanntedatenmenge runterlädt und wenn dies fertig ist die 2. zeit in die db speichern (nicht unbedingt notwendig). und dann aus der filegrösse und den beiden zeit die verbindung berechnen und weiterleiten