Фразеологический словарь русского литературного языка says, that "стоять над душой" means "мешать, надоедать своим долгим присутствием". I'm not quite sure what "над душой" (above one's soul?) means literally, or what historical meaning it could have had before becoming an idiom. How did this phrase come to be?
I think it derived from "Не стой надо мной, какъ чортъ надъ душой", meaning that someone sticks around a person with a persistence that can be compared to a devil longing for a human soul.
In Russian there are quite a few idioms mentioning "soul". E.g. "Души не чаять", "Душа в пятки ушла" etc. So it doesn't seem strange to mention it one more time ;-)
The origin is probably due to the following more complete form: "Не стой надо мной, как чёрт над душой" (Don't stand above me like the devil about the soul).
Another (old) meaning of the word "душа" is "serf" like in Gogol's novel "Dead Souls" (which also means "Dead Serfs"). But it doesn't seem to have any connection with idiom you are asking about.
In fact, "soul" is not the only meaning of the word "душа". In classical Russian literature you can often encounter other meanings like:
- Human (a man, a woman or a child) - "2 души мужеского полу" (and in official documents it is used to describe population of the area), "на улице ни души".
- Someone's emotional state - "Ах! сударь, вы душу мне возвращаете!"
(For more meanings you can check this article).
So, I think that "стоять над душой" may mean something like "to make a pressure on someones emotional state".
No one yet mentioned that
душа is also a slang/colloquial name of some body part/place on the stomach (not sure exactly).