You could probably write a daemon to keep the primary selection empty. The `xsel` program would be a good place to start. I thought you could do it with `while true; do echo -n '' | xsel -n -i; done`, but it quits immediately if the input is empty so that would be constantly executing a new program. Still, I expect there's some trickery you could do with it, or you could look at how it's implemented and copy that.
(edit - or to eliminate a lot of the pain,
while true; do echo -n ' ' | xsel -n -i; done
will keep a space permanently in the selection. I tested and it seemed to work, though there may be edge cases I'm not aware of.)