This works for me, and in fact I've been able to use document.getElementById as well. If you're adding an event or something (and hooking it to onLoad), just make sure you set a Timeout because grids get loaded in via iframes after the page itself loads, so there may be some delay. I ran the below script against a datagrid that exists on our Opportunity form (this JS was hooked to onsave), and was getting "Control Found" every time.
function test()
{
var control = Xrm.Page.getControl('grid_name');
if (control == null)
{
console.log("Control not found.");
//setTimeout(setTimeout(function() { test(); }, 3000));
}
else
{
console.log("Control found.");
}
}