By default, PyMOL renders an image with the same dimensions as the viewer window. However, both draw and ray accept width and height as the first two arguements
draw 1600,1200 ray 400,300
When you save the image using the png command, you can specify the dots per inch.
png my_image.png, dpi=300
Thus, to generate a 4 inch by 3 inch image at 300 dots per inch, you would issue the following:
ray 1200,900 png my_4x3_image.png, dpi=300