This can be done like this (all arcpy, except step 2):
1) Use arcpy.ListFields() to get field names and field aliases from a feature class, and output to a csv file
2) In the csv file, update the alias column
3) Using arcpy, re-add the feature class to the map document (mxd) - it will have the wrong symbology
4) Use arcpy.ApplySymbologyFromLayer_management() to update the symbology
5) Use arcpy to delete the original layer from the MXD
Just be aware that ApplySymbologyFromLayer_management may not bring across all layer properties, e.g. Definition Queries.