I found the top HR hitters by dividing their HRs by the times they made contact (that is, at-bats minus strikeouts). They may have made contact a few other times with sacrifice flies and sacrifice hits, but SFs have not always been kept separate from sacrifice bunts. The players included everyone who had 4,100+ plate appearances from 1920-2007. My source was the Lee Sinins Complete Baseball Encyclopedia. The first table shows the leaders. The second one has their rate divided by the league average. I am not sure if this proves anything, but it was fun to compile and see who the leaders were.
In the first table below, McGwire is the leader and is a good bit ahead of the 2nd place Ruth. After McGwire, the players are pretty bunched up. McGwire hit 583 HRs in 6,187 ABs. He struckout 1,596 times. That gives him 4,591 contact ABs. Then 583/4,591 = .127 or a 12.7% HR-per-contact rate.
In the table below, Ruth had a rate of 10.8% while the league average was 1.4%. Since 10.8/1.4 is about 7.69, he gets that as his "relative rate."