Do you know your scales and arpeggios thoroughly, and practice them until they become second nature? It does involve a lot of commitment and isn't going to give instant results, but your sight reading will really improve a lot if you have a very good understanding of the key signature in which the piece is written. If you know before you begin what notes you're likely to encounter (and more importantly, which notes you're less likely to encounter) it makes it easier to sight read. It's not enough just to know the theory. You can look at a key signature in A major and tell yourself that the piece has F#, C# and G#, but if your fingers aren't thoroughly used to playing in A, then they will repeatedly hit F, C and G naturals and then you'll kick yourself.
For help with rhythm, have you tried isolating just that element? The problem with sight reading piano music is that there are a lot of different difficulties to be overcome - you have to be able to read all the notes, on two different staves, sort out fingerings, and get the rhythm right too. Might it help if you practised the rhythm separately -perhaps by beating it out on a drum, or a table top, or on just one note of the piano - until you'd mastered that bit?
Finally, do you listen to recordings of your pieces before you learn to play them? It helps a lot if you know what the piece is supposed to sound like in the first place.
Kathryn