According to some of the documentation I've read the service account for SQL server will create an SPN when the database engine starts up, allowing for kerberos authentication. I haven't been able to find any documentation that states what permission an account would need to create an SPN. So, what permissions would an account need to have (barring domain admin if that's possible) in order to create an SPN?
Based on this MSDN article, and clarification by @Handyman5, the section "Delegating Authority to Modify SPNs" states
The permission to delegate "Validated write to service principle name" requires "Membership in Domain Admins, or equivalent"