I had a similar problem, that I resolved by replacing the starter.
There is a video of what was happening,
240sx SR20 starter problem, - YouTube
It seemed like the part that pushes the gear out wasn't going out far enough/quick enough so it would just grind against the flywheel.