Maybe this is simpler and more straightforward then what I'm thinking but I can't seem to find this concept on google anywhere. The concept is this:
You have a table in a database and the table has a specified number of columns. However, it has been asked of me by previous clients that there also be a set of dynamic user defined columns that can be added on the fly.
What is this concept called and is it considered a design pattern?
You're probably talking about name-value pairs.
Like this:
UserProfile
-----------
UserID PropertyName PropertyValue
But it doesn't mean you add columns to a table dynamically. It's not done this way.
Officially it is known as the Entity-attribute-value model.