I've been through this scenario a gazillion times. Check your battery cables and terminals. If a terminal is heating up you can bet you have found your problem. Absolutely must have good clean connections. I have found corrosion on the wires inside the terminals as well as corrosion between the terminals and battery posts. If this is not the answer then the brushes inside the starter are either worn or very dirty. Matter of fact, just today I had a similar problem on a 1972 Mercury 402... bad connection at battery cable terminal on solenoid. I just removed the cable, cleaned up the terminal on the cable and on the solenoid (starter relay) using a knife and screw driver to scrape away all corrosion and oxidation... looked for a small wire brush but couldn't find one. If you continue to try to crank the engine in this condition you will damage the points inside the starter relay which can result in the same symptoms... If you can jump across the relay and get good cranking speed then you know it is the relay giving you problems.