They are different in meaning. "Impede" can mean to slow down as well as to stop, and it can refer to anything, not just to human plans.
For example, "a screen will keep mosquitos out, but it impedes the flow of air."
"Thwart" means "to prevent someone from reaching a planned goal." It always involves a plan and a goal. It always means complete prevention. A plan isn't necessarily thwarted by being blocked at the very end. Often, it is thwarted by interfering with some early step in a process.
For example, "they thought they had the votes to pass the law, but were thwarted by their opponents, who used a parliamentary rule that blocked it from being voted on."
Or, "squirrels kept stealing food from my bird feeder. I couldn't stop them from getting the food if they got into the feeder. However, I was able to thwart them by blocking them from climbing the pole supporting the feeder."
Both "thwart" and "impede" are fairly advanced words. It is usually easy to say the same thing in simpler words. Instead of saying "impedes air flow" we can say "slows down air flow." Instead of saying "thwart" we can say "block" or "prevent" because that captures most of the meaning. A native speaker might use "thwart" to carry the extra nuance of "interfering with the way a plan unfolds" but that could be made clear in other ways.