How to create C++ enum that can have new entries added in blueprint?

That’s not a use case for enums. Enums are just human-readable names for byte values, the string representation is stored only for convenience. Like kylawl posted, what you want is an array of FNames.