Well, you do have an empty element with properties that is still designating space. For example, you have a class called "product_description" directly above the price with no content inside, yet it has a margin-bottom property of 10px.
I'm not sure what purpose that class serves, but I'm assuming it exists because at some point you plan to have content there. So even if you go by the position:absolute route, the text that will eventually reside in that element will not be consistent because it will be misaligned with your image. Then you're trying to fix a fix versus evaluating the layout beforehand, which could lead to a lot of problems.
If the product description has no purpose and will never be used, eliminate the element altogether or at least the margin, remove the top/bottom padding from your "wpsc_product_price" class, and add adjust the line-height of the price a bit. I say all of this not knowing what the ideal layout and spacing purposes, but that should do the trick.