That said, the GPLv3 would probably meet your needs well. It ensures that if anyone modifies your program and distributes it, they are obligated to release their changes to the source code (also under the GPL). I suppose they could still bundle your code up and sell it, but at least any value added by them in terms of program-modification should come back to you.
Other than this, the GPL(v3) is the closest thing, as has been said before.
However, the downside of restricting it to non-commercial use is that hardly anyone if at all will use your software, and it probably will never make it into any of the mainstream distributions, rendering it fairly irrelevant. I don't think that's worth the price, so I'd go with the GPLv3.