There is no way to throttle performance with direct blob access unless you use expired shared signatures. And with SAS you will have to generate those that are in your application (so, effectively, you can throttle access based on your application logic, you will not be able to throttle the bandwidth if they access the blocks directly, with or without SAS).
Without SAS / expiration, you will need to direct the blob content through your application, as well as direct access to the blob. And how you implement throttling at this point is up to you and your application logic.
source share