Hi,
In the view file product / listing.php that you can edit via the menu Display>Views, you have this code by default:
if(!$this->module)
echo $mainInfo;
if(!empty($html)){
if($this->module) echo $mainInfo;
if(!empty($htmlFilter) && $ctrl == 'category')
echo $htmlFilter;
The pageheading is in $mainInfo and the sort filter is in $htmlFilter.
And $mainInfo being echoed before $htmlFilter, the pageheading is displayed before the sort filter by default for products listings too.
If it's not the case on your website, it's probably that this code has been customized to not display like that for some reason.