Manage a quant of custom post types created by user. It’s not trivial task.
All available to the user post types (built-in and custom) are created on the fly by call of the register_post_type() function. WordPress made it itself A lot of plugins may register own custom post types. Active theme may do the same. All of them do this without accent what user does that. So you can not manage this process externally.

If some plugin allows is in use for CPT creation I think the only possibility to achieve your goal is to add such restrictions to that plugin. So it adds user ID to any created CPT and count what quant of CPTs is allowed for what user.