Can you, and if so, how, set a repeat rate for mouse buttons? I have an external mouse, with programmable buttons. I'd like to set some of those buttons to repeat if I hold one of them down- similar to how keyboard keys repeat, but don't see where to do that.
You can do this with a a product called ControllerMate.  They have a feature called the  Auto-Repeater Building Block


  The Auto-Repeater building block provides a way to automatically
  repeat events at a fixed rate.
  
  An Auto-Repeater building block has one ON/OFF input and one ON/OFF
  output. While the input is ON, the output turns ON and OFF at a
  predetermined rate.
  
  To configure an Auto-Repeater building block, enter the rate at which
  it should turn its output ON and OFF. The rate can be given as the
  number of repeats per second, or seconds per repeat.


(They provide an example on the page linked above)




Basically, if the Building Block detects an "on" state of an input (holding the button) it will auto repeat whatever you tell it to repeat at a set rate.

You will have to bypass the programming of the mouse and use this to program it.  I have done this with my Logitech MX Professional mouse and a second (Logitech) keyboard which I have reassigned keys to complex macros.

Controller Mate has an unlimited trial period that is limited to 10 "building blocks" meaning you can have a single work flow of 10 blocks or 5 flows of 2 blocks or whatever combination so long as it has no more than 10.  However, at $25, it's a very reasonable solution.