Dynamic models can be changed at runtime (please refer to http://wiki.alfresco.com/wiki/Dynamic_Models) using Share and/or Explorer UI. They can also be updated via RepoAdminService API albeit by updating the complete XML model.
FYI, the DOD5015 module also introduces the RecordsManagementAdminService API for certain specific model updates within the context of RM, eg. to add a custom property or to change list of values. If you're interested in the implementation then take a look at RecordsManagementAdminServiceImpl.java (readCustomModel / writeCustomModel).