Is it possible to apply NotBlueprintable (or do something else with the same result) to a parent class in order to hide it from the editor?

The only way is to use the “Hidden” specifier in the class header. This will prevent any further Blueprints from inheriting your C++ class (tho existing blueprints will be fine).

UCLASS(BlueprintType, Hidden)
class ....

If you want to do that on an engine class, you’ll need to edit engine source.