Are all your sprite activated? In our project, we have a level selector screen, with 140 levels and each level selector is composed of multiple widgets, so it has lots of UIRect Updates.
The thing we notice is that if we run a script that detects if the widget is in the screen every X seconds (depends on your needs), and disable unneeded widgets out of screen, it saves us a lot of Update.
But really, the Update function of UIRect is not very heavy.