Я предлагаю вам исследовать ExtJS GRID. Я думаю, что это было бы отличным местом для начала - основы для дополнительных возможностей, которые вы хотите добавить.
Я бы использовал простую таблицу с текстовыми полями в td'е, если говорить о верстке. Jquery можно было бы использовать для прикрепления обработчиков кликов к каждому из них с целью обработки итоговых и других формул