Shapes getting distorted while displaying in LCD
You need to pay attention to the specs for your two displays. The first is an 800 x 480, while the second (which acts as you expect) is a 640 x 480.

Your problem is not that the display pixels are not square - they are. It's just that you're sending drive signals which only display 640 pixels in a line. The problem child is looking at this signal and modifying the signal so that a line of 640 pixels is mapped onto 800 pixels, and the original pixels are getting stretched to fit in the display.

The display has no way of knowing what aspect ratio you want, and it's assuming you want to use the entire width of the display. Since you're smarter than an LCD display, it's up to you to cater to its limitations, not the other way around. Reformat your display driver to provide an 800 x 480 display and you'll be fine. Of course, you'll probably give your 640 x 480 display heartburn, but that can't be helped.