In Gallery.Items I'd try a GroupBy, wrap it in an AddColumns to determine number of occurrences, probably by a CountRows, then wrap the whole thing in a SortByColumns. I use a similar method to extract a 'Sort Order' column:
SortByColumns(
AddColumns(
GroupBy(
'Risk Mgmt Table - MASTER LIST',
"Title",
"_groupTable"
),
"NewSortColumn",
First(_groupTable.'Sort Order').'Sort Order'
),
"NewSortColumn",
Ascending
)
You would want something like:
SortByColumns(
AddColumns(
GroupBy(
'YourList',
"companies",
"_groupTable"
),
"_occurrences",
CountRows(_groupTable.ID)
),
"_occurrences",
Descending
)