In Salesforce we would use what is called a Sharing Model
The sharing model defines how record-level privileges are granted to users who do not own the record. Configuring the sharing model is a two-part process. Organisation-wide default are used to establish the most restrictive level of access for each object. Sharing reasons override the default to grant access to individual records.
Every object that allows record ownership has an organisation wide default setting dictating how records are shared between the owner and other users. The setting can be Private, Public Read-Only, Public Read/Write, Controlled by Parent. To configure organisation wide defaults Setup -> Security Controls -> Sharing Settings.
Private : Records belong to the owner and only the owner. With the exception of the data administration-level privileges View All and Modify All, records are accessible only to their owners.
Sharing reasons override the organisation wide defaults to allow individual records to be shared between groups of users. The groups can be roles or public groups. Sharing between roles results in asymmetric privileges. Users in subordinate roles do not receive any privileges of their superiors, but superiors receive all the privileges of their subordinates. There are four types of sharing reasons : Manual, Sharing Rules, Procedural and Delegated Administration.
So essentially we will have to set Private on the Account object under the Organisation wide defaults and set, as a Sharing Rules that only the type of Role that you are interested to have Read/Edit access to any Account record. The Role can be assigned to a user just like a Profile.
A link to a Youtube video that will explain better the use of the Sharing Model
Also for reference: Understanding Sharing