How can I update 'IsSsoEnabled' field on Profile to true for some specific profiles in schedule class which runs every hour? When I am trying to update it through apex code, it is giving the error "DML not allowed on Profile"
You won't be able to do DML on profile object.It's read only.
You can update for different profiles via force.com IDE by editing metadata xml and setting this to true and saving the metadata xml.
Since you need this to be scheduled ,you can explore metadata API to achieve this either through a java program or use metadata apex wrapper from financial force to do this via apex