Er is wel degelijk een verschil.
1. naartoe, zou je eerder gebruiken in België, misschien in sommige streken in NL ook, en "heen" eerder in Nederland - zeker nooit in België (dat zou zéer "Hollands" klinken)
2. heengaan kan je virtueel gebruiken, bv "ze is van ons heengegaan". Kan je niet met "naartoe". De reden is dat je met "naartoe" duidelijk naar de bestemming vraagt" terwijl "heen gaan" eerder slaat op het vertrekken van een plaats, naar een niet nader genoemde plaats van bestemming
3. Je grbuikt dus ook "heen en terug" als het gewoon om twee tegengestelde richtingen gaat. Je kan dit niet vragen met "naartoe". Een slinger gaat heen en weer. Alweer hier, duidt "heen" op weggaan van "deze plaats", minder op de bestemming.
4. Je gebruikt ook "heen" in vragen zonder een antwoord te verwachten. Waar zijn m'n sokken nu weer heen? ik vind ze niet meer.
etc etc
Zoals je ziet, dus vele verschillen in het gebruik en de toelaatbaarheid/toepasbaarheid.
Het is dus de context, het verhaal, die zal bepalen of één of andere uitdrukking toepasbaar is of niet.
Zonder verdere context gaan ze gelijk op.
mvg - Basler Biker