There's a few things you can do thought they may not have perfect or consistent results without resorting to annotation or a labeling extension.
Play with the buffer option in your higher ranked labels. I usually need to set it to at least 3 to see results. It will keep other labels near that layer from displaying. You'll need to play around with it to make sure it doesn't block too many other labels.
In the label placement options, display your low weight label over a point if you are able to, and then make the point invisible. This will make it more likely to disappear and less likely to move.
Make sure "Allow overlapping labels" is not checked in any of your label properties.