Depending on how many projects you have and how big the team is, my team's approach could help you.
We have weekly meetings for one hour where we go through a list of active projects and each person in a group gives a number to how much time they are going to spend on it over the next two weeks. So you have a spreadsheet with a list of team members names on the x axis, projects on the y axis and you just run through it.
For instance, I would say "I'm on project A for one day this week, and three days next". And so on. The next week we talk about how our predictions went for the past week, and update our time for the next two weeks based on what happened.
It's intended to be non judgmental - I've had a lot of times where I said "project A didn't get a day last week because project B fucked me and the deadline on project C got pulled, I need three days on A this week and three more the week after to catch up." The idea is everyone can see I have all my open time accounted for over two weeks so they know how busy I am and where that time should be going. If I keep having to update my predictions because one project is getting out of control it's a signal to the group that I'm overloaded and a project needs to be re-resourced because the original time budget was off.
If someone only has 60 hours accounted for at the end of the meeting the boss can see it and say "looks like you have 2.5 days free, I want it put on project A to help Roy catch up."
Using timesheet tracking is helpful, but only in hindsight - you can't fix Jane being overloaded two weeks ago when you look at a month end timesheet. For slow moving companies with very long haul style projects that makes sense, since you can just fix it for Jane in the coming month or it could just be a one time blip. But if you have projects that might only be a couple months in total duration you need shorter duration check ins to stay on top of it.