Ваше предположение (прослушать событие нажатия Карты и проверить его цель) звучит правильно, так как нет реализации для доступа к элементам управления.
Это работает для меня (сейчас):
google.maps.event.addDomListener(map.getDiv(),'click',
function(e)
{
var t=e.target,
a=[null,'left','right','up','down'];
if(
t.parentNode.parentNode.hasAttribute('controlwidth')
&&
t.parentNode.childNodes.length==5
&&
t.parentNode.firstChild.tagName=='IMG'
&&
t.parentNode.firstChild.src
=="http://maps.gstatic.com/mapfiles/mapcontrols3d7.png"
)
{
for(var i=1;i<t.parentNode.childNodes.length;++i)
{
if(t.parentNode.childNodes[i]==t)
{
alert('You\'ve clicked on \n>>>'+a[i]+
'\nyou may call a function now.');
}
}
}
});
http://jsfiddle.net/doktormolle/fwgMy/
Но это работает только до тех пор, пока Google не изменит разметку, а это может произойти завтра.
Лучше было бы спрятать панель управления и создать свой собственный элемент управления.