How to solve speed issues in a double buffered + video overlay system
Explaining exactly what to do is way beyond what we can do in a forum like this.  That being said, you need buffers or FIFOs.  Every read and write to SDRAM must be a burst where every word of the burst is utilized. Data would be temporarily stored in FIFOs or other types of buffers to accommodate the burst transfers.

The FIFOs also help deal with the arbitration delays when multiple things are trying to access SDRAM at the same time. 

The other way to speed things up is to use a wider data bus to SDRAM.