Can I divide mesh to perfect squares?
In your case, I would keep just the top and bottom edge loops and delete everything in the middle. To select the edge loops ShiftAltRMB on the top and bottom, then Invert I and Delete X.

Then use Bridge Edge Loops (which can be found in the Specials menu W).



You can adjust the parameters until you get edge spacing that is much closer to squares. 

As Duarte Farrajota Ramos pointed out, you cannot get each face to be a perfect square, or you end up with a cylinder. But you can get even mesh density this way, which I'm guessing is what you are after.