content-property is used in case of content repositories which has content repository items. Content repository is used just like regular SQL repositories. A content repository item can be thought as consisting of some content and its metadata. The content-property attribute is used in the content item-descriptor and is usually the name of the property that holds the content itself.
E.g. "media" as you mentioned. Here the metadata might include properties like name, description, type, date of creation, keywords etc. while the content would include the binary-data of the media itself (in case of internal media type). So the declaration content-property="data" in the media item descriptor signifies that property called "data" in the media item will be holding the actual content. You can find more details about it and content repositories in the ATG Repository documentation.