Even when you do everything right - that is, put equally skilled dwarves in squads of 2, the actual amount of time they spend sparring vs doing other things is *highly* variable. I ran the same save multiple times to test this, and there could easily be a difference of two levels of skill from spring to autumn, even with absolutely identical dwarves in an absolutely identical setup. I couldn't figure out any way to make it more reliable, but even when the progress is slow, it's still not bad.
Here is basically "doing everything right:
1) Put dwarves in squads of 2.
2) Pair up identically skilled dwarves - ie two dwarves with no military skill at all, might skill up faster than two dwarves with a range of weird combat skills (which they'll spend time teaching each other).
3) Weapon skill seems to help with sparring a lot. If you bring embark military, make them proficient weapon skill - this will help more than any other skills you can give them. If you recruit immigrants and they already have weapon skill, try to avoid making them learn a new weapon.
4) Ensure they have a civilian skill to avoid the monthly unhappy thought "upset about being relieved from duty" (I don't know whether being unhappy impedes performance, but it's sure as heck not desirable).
5) Minimize all distractions. Give them waterskins, a food stockpile in the barracks, and beds nearby. And don't give them any time off, with the happiness from sparring they don't need it.