As a good starting point, remove the select tags from the Product template
Code:
Options:
<!--<select name="variants" onchange="SetCartVariant(this.value)">-->
<xsl:apply-templates select="/root/ProductVariants/Variant" />
<!--</select>-->
then remove the option tags from the Variant template and add radio inputs
Code:
<xsl:template match="Variant">
<xsl:param name="vName" select="aspdnsf:GetMLValue(Name)"></xsl:param>
<xsl:param name="pSalesPromptName" select="aspdnsf:GetMLValue(/root/Products/Product/SalesPromptName)"></xsl:param>
<xsl:param name="pTaxClassID" select="/root/Products/Product/TaxClassID" />
<br/>
<input type="radio" name="rg1" value="{VariantID}" onclick="SetCartVariant(this.value)">
<xsl:if test="IsDefault=1">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
<xsl:value-of select="$vName"/>*-*<xsl:value-of select="aspdnsf:GetVariantPrice(VariantID, number(HidePriceUntilCart), Price, SalePrice, ExtendedPrice, Points, @pSalesPromptName, $pTaxClassID)" disable-output-escaping="yes"/>
</input>
<!--<option value="{VariantID}">
<xsl:if test="IsDefault=1">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="$vName" />*<xsl:value-of select="ArtNo"/>*-*<xsl:value-of select="aspdnsf:GetVariantPrice(VariantID, number(HidePriceUntilCart), Price, SalePrice, ExtendedPrice, Points, $pSalesPromptName, $pTaxClassID)" disable-output-escaping="yes" />
</option>-->
</xsl:template>
If you wanted the options to say Add x.xx or Subtract x.xx you'll probably have to implement some custom calculations through extension functions and maybe some javascript to get the prices to change depending on which one was selected, or possibly even create an entirely custom page so that you could implement some ajax or whatever you wanted to use to get the prices to change.