But if I reduce the height, width also gets reduced.
This is presumably because you have specified scaling="uniform"
on the graphic. This will always "preserve the aspect ratio" (see the relevant part of the specification here).
<fo:external-graphic content-width="scale-to-fit"
width="100%"
content-height="50%"
scaling="non-uniform">
<!--...-->
</fo:external-graphic>