Thanks MonkeyBen and Webbower. The issue is now *SOLVED* thanks to your input.
For someone reading this in the future bleary eyed and frustrated at 2am in the morning :-) here is the scoop when working with a has many relationship in a classic SilverStripe PageHolder / Page setup. In short Webbower was spot on. The method call to the get the children of the ImageGalleryPage had to be in the Page subClass block and not in the Page_Controller block. As soon as I moved the method up to the Page subClass block the call using $this recognized its current scope and was able to get it associated has many relationship.
class ImageGalleryPage extends Page {
static $db = array(
'GalleryTitle' => 'Text',
'GalleryExcerpt'=> 'Text'
);
static $has_many = array (
'ImageGalleryPageImages' => 'ImageGalleryPageImage'
);
function ImageGalleryShowNum($num = 6) {
$results = $this->getComponents('ImageGalleryPageImages', '', 'SortOrder DESC', '', $num);
return $results;
}
}
So if you are looking to iterate over you Pages in a holder relationship and those Pages have a has many relationship just follow this style to get at the data you need.