Игнорируя ваши требования к выравниванию, вы можете использовать
number.ToString("€#,##0.00;(€#,##0.00);Zero")
заключить в скобки отрицательные числа.
Чтобы выровнять числа, вам нужно будет отформатировать их без символа валюты и дополнить форматированные числа пробелами. Использование шрифта фиксированной ширины облегчит вам эту работу.
EDIT:
Кажется, String.Format твой друг:
String.Format("{0,15:#,##0.00 ;(#,##0.00);- }", number)
где 15 - общая ширина вывода, и вам нужно добавить этот текст к символу вашей валюты. (Опять же, это выравнивается только с фиксированной шириной)