An ItemTemplate column actually generates at least three controls (depending on what you put inside the <ItemTemplate> tags)
There's a Literal tag on the left and right of what you define...... anyways, the easy fix for alignment is to just add a <div> tag around your code:
<ITEMTEMPLATE>
<div align="right">
<A HREF='InvoiceDetails.aspx?InvoiceID=<%#DataBinder.Eval(Container.DataItem, "invoice_id")%>'><%# DataBinder.Eval(Container.DataItem, "invoice_amount","{0:#,###,##0.00}")%> <%# DataBinder.Eval(Container.DataItem, "invoice_currency_code")%></A>
</div>
</ITEMTEMPLATE>
done