El 1908 va prendre part als Jocs Olímpics de Londres, tot representant Sud-àfrica. Disputà dues proves del programa d'atletisme, la marató, en què guanyà la medalla de plata després de la desqualificació del vencedor inicial, Dorando Pietri. Hefferon va liderar la cursa fins a la darrera milla i mitja, quan fou superat per Pietri, desqualificat per fer trampes, i Johnny Hayes, vencedor final. L'altra prova que disputà fou la de les 5 milles, on fou quart.