Mark,
Any 'space' would come from the HTML output either in your page template or product template. As Jim has mentioned, the only HTML output of this that you can't control is an anchor tag (which shouldn't create any visible space) and the <tr> and </tr> tags themselves if you are using the 'numcolumns' parameter in the LOOP PRODUCTS tag.
The space you are seeing is likely just the default spacing your browser applies to all HTML tables (and/or form fields, if you are using a form-based add to cart button in your product template) and you just need to give different spacing to these table (and/or form field) elements either in the HTML tags themselves or in CSS that defines them.
Jim also said this in reply to your other post on exactly the same topic:
http://support.shopsite.com/forums/viewtopic.php?t=3011
There are default values that browsers use for spacing around and within a table. You can modify the various spacing features by using style sheets.
You should check out a good style book to see how this is done. You can also get information of the web at various sites by searching for "Table style sheet". You might want to check the site
http://www.w3.org/TR/REC-CSS2/tables.html for some basic information.
I would suggest the same thing as Jim, check out an HTML/CSS book or other online docs and find out what your HTML/CSS could be doing to override the HTML default spacing around table elements and form elements.
-Loren