How many buttons are you going to have that a simple bounding square test is going to become speed prohibitive? I'm sure you could manage a few hundred without restricting performance, even on the most demanding of games. Seems like you're overthinking this unless there's more to this than meets the eye.
I mean even if you have your array, you'll never be able to have overlapping items, which might well be a problem if you decide to build your GUI up into something more advanced.
I mean even if you have your array, you'll never be able to have overlapping items, which might well be a problem if you decide to build your GUI up into something more advanced.