We have a sales team with multiple teams. Each team leader has multiple salespersons under him/her. We wanted a solution where salespersons see their own leads (already available solution), sales manager and above in heirarchy see all leads (already available) but Team leads see leads of all their team members. So we set up the team heirarchy in the Default sales team (in Users, not just in Employees). Then we followed these steps. Let me know if there is a better solution.
Create "All Team Leads" record rule on Lead/opp object, with this rule
['&', ('section_id.user_id','=',user.id), ('section_id.member_ids', 'in', [user.id])]
Create new Group " See All Team Leads" on Sales Object, inherit "Sales/See Own Leads" and apply "All Team Leads" rules.
Add the Team Leads to this Access Rights group in Sales (doing this manually now - expecting better solutions where 'Team Leads' to automatically have rights)
Do the same if you want Phones, Orders and Order Lines too.
This solution we did also solves this question - Record Rule for Sales Team Leaders in old forum section.
Any better solution will be updated.