You aren't making a mistake. The one line template is only 1 line if the product does not require a form submit button. Using the Quantity or Order options will force a form which will insert a table and for the output to be on multiple lines.
You could create a custom template that would have everything on one line by making the whole product output be in a single table with each element of the product in a table cell.
Something like
<FORM action="[-- SHOPPING_CART_URL BASE --]/order.cgi" method=post>
<table><tr>
<td>[--product.graphic --]</td>
<td>[--product.name--]</td>
<td>[--product.sku--]</td>
<td>[--product.productdescription --]</td>
<td>[--product.price--]</td>
<td><input type=text size=2 name="[-- PRODUCT.RECORDNUMBER --]:qnty" value="1"></td>
<td>
<input type=hidden name=storeid value=[--STORE_ID--]>
<input type=hidden name=dbname value=products>
<input type=hidden name=function value=add>
<input type=hidden name=itemnum value=[-- product.RecordNumber --]>
<input type=image src="[--OUTPUT_DIRECTORY_URL--]/media/add_to_cart.gif">
</td>
<td>a href="[-- Shopping_Cart_URL --]">
[-- PRODUCT.ViewCartButton --]</a></td>
</FORM>
I did not test this out but it would be something similar to that. You will need to verify that it work for you.