ArrayCtrl can behave as a virtual array (it doesn't store data in the control itself in this case). GridCtrl doesn't seem to have this feature. So, you need to sacrifice some nice features of GridCtrl to save memory with ArrayCtrl.
It is a common design pattern of UPP to store data within controls. And it work very well if you do not have a lot of data.