How can I limit the number of email sent per hour in a rule?
Below is a summary of how you can get this to work:


Use the Flag module and introduce a flag to allow "flagging" all those "users of a role" (as in your question). Let's assume you label that flag as "eMail notification outstanding" (to indicate that something still needs to happen to send that eMail later on).
Adapt the rule you already have, like so:


Remove the Rules Action "Send HTML mail to all users of a role".
Flag those "users of a role", using the new flag (from step 1) for each of the users. To actually do so create a view of those users (using Views), and use that view in combination with Views Rules to flag each of these users. Refer to my answer to "How to use Rules to send an E-mail after saving a new comment, to users who checked a boolean in their profile?" (the option 2-part of it) for an example (with screenprints) about how to use the Views Rules module.

Use the Views and the Views bulk operations (VBO) modules to create a VBO list of all flagged users (flagged by the new flag in step 1), sorted by flagging date (oldest first), and limit the results to the first 50 users only (50 is the value that seems to fit your needs).
Create a new Rules Component that "loads the VBO list" (from step 3) and add a loop to that rule to perform these Rules Actions:


Send HTML mail to each of the users in that VBO list.
Unflag (using flag from step 1) the user for which you just produced an eMail. This to indicate that the eMail notification was completed (no longer outstanding).


In that same rule, as the very last Rules Action, add an action to reschedule the execution of the same rule within 1 hour (1 hour is the value that seems to fit your needs).
Use the Rules UI to manually trigger the very first execution of that self-rescheduling Rules Component (from step 4.).


Using the above approach, every hour, Rules will notify 50 users "as requested".