You might consider changing your repeater to CSS List Menu (it automatically hide menu items according to "Show in navigation"). All menu logic is solved in there.
I strongly suggest you to use it. Take as example on "the corporate site" and see how the css list menu is done there.
If you still want to use your repeater do it with a custom query just use SQL with calculated column VisibleCHildrenCount  for ex.:
WITH MenuQuery 
(NodeHasChildren, NodeID, NodeName,  NodeLevel, NodeOrder, DocumentName, DocumentMenuItemHideInNavigation, NodeParentID)
AS
(
-- default query for cms menu list with fewer columns
SELECT  
NodeHasChildren, NodeID, NodeName, NodeLevel, NodeOrder, DocumentName, DocumentMenuItemHideInNavigation, NodeParentID
FROM View_CONTENT_MenuItem_Joined 
WHERE [NodeSiteID] = 2 AND ((DocumentMenuItemHideInNavigation = 0) 
AND (MenuItemGroup <> 'footer' OR MenuItemGroup IS NULL)) 
AND ([Published] = 1  AND [NodeLevel] <= 2  AND [DocumentCulture] = 'en-US') 
)
SELECT VisibleCHildrenCount = 
    (SELECT COUNT(*) FROM MenuQuery q2 
    WHERE q2.[DocumentMenuItemHideInNavigation] =0 and q2.NodeParentID = q1.NodeID), *
FROM  MenuQuery q1
ORDER BY NodeLevel, NodeOrder, DocumentName