I've heard people using both expressions. Which one is correct, or are they basically the same?
Both are certainly correct and both basically mean the same thing, but if you want to be precise and analyze them, heading in the right direction may be more specific to the current situation, like saying:
Captain, we're (currently) heading in the right direction and should be arriving the destination shortly.
On the other hand, headed in the right direction may have more general meaning expressing a longer time scale, like for example:
This may be a young nation, but it's definitely headed in the right direction. During the last few years, it has advanced in many areas like no other country.
Usage of both phrases is head___ in the right direction:
I think "headed" came to this use because navigational heading is something you must get right in the past in order to be correctly on-course now.
If I was 'headed' the wrong way 2 min ago, and I've been headed the wrong way for the past hour, then even if I change course now, it will take some time before all can confidently say that we are "headed" the right direction.
I seriously doubt most people think this deep about the wording, but I do think it is the cognitive underpinnings of the words work this way.
Reference: George Lakoff
They are both correct, but they are used in different instances.
"Headed in the right direction" is for past tense usage, it indicates something that happened in time past i.e. John headed in the right direction, or John did this some time ago.
"Heading in the right direction" is a progressive tense usage, and is used to indicate something happening right now. i.e. John is heading in the right direction or John is doing it as I am talking.
They are used to mean different things, as in indicating the time it occurred, so some distinction should be noted here. They are both correct, as long as they are used in the correct situation.