adding property while the bge is running?
Yes, that's possible.

Game objects behave like dictionaries, so you can just assign any value to any name (no need for adding a property in the Blender GUI):

scene.some_object["new_property"] = "Hello"


You can even store lists, objects and any other data type in these properties.