I'm not sure about how much it recompiles, but you can stop automatic rebuilding with Window->Preferences->Workspace->Build Automatically checkbox.
The ability of javac to determine whether or not a class needs recompiling is somewhat limited. I'm not sure of its precise ability, or even whether Eclipse relies on it, but this may be the cause of the huge recompiles.
Certainly in my project (medium sized, ~1500 classes) automatic rebuilding is not a feasible option. I just do Ctrl-B when I want a new build. It kinda gets you into a "code for a bit, fix typos for a bit, review for a bit" mentality when coding.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com