Could you make this a "logical" table rather than a "real" table? I suspect that if 5 users create "the table" all of the tables would have the same definition, just a different "table name" (under the current scheme). You might add a new column to be the high-order part of the primary key that would be the "logical table name" and when the user enters this, use it to differentiate between user's tables.
Whether a real table is created or a logical table is identified, how will this be used by the system? What would be the purge criteria or would these just accumulate forever?
What business requirement is this meant to provide?
Hope this helps,