Custom fields Unlimited

In my application I would like to allow users to dynamically add custom
fields like texbox, dropdown etc. This application will be shared by
different customers. Each customer can change the design of the page by
adding their own fields to the page.

Original Customer table

Customer Table (modified by Customer1)
FirstName|LastName|Zip| State | City

Customer Table (modified by Customer2)

What are the available options to achieve the above functionality?