You said you use a grid. Grid size is constant. Even if it wasn't, you can always use NGUIMath.CalculateWidgetSize (or was it in NGUITools? I'm away from my PC atm)
You should ideally create your own grid system instead of using UIGrid since you want it to resize based with the size of the screen.
NGUI can handle all the visualization, but it's up to you to create logic that positions your widgets how you want them.