Barnett est né à Manchester, fils d'un tailleur, et fait ses études au Manchester Central High School[2]. Il travaille comme comptable. Il est élu conseiller du conseil municipal de Prestwich (1956-1959) et trésorier de la ManchesterFabian Society. Barnett se présente à Runcorn en 1959 sans succès. Il est élu député de Heywood et Royton en 1964. Il est membre du Comité des comptes publics à partir de janvier 1966.
Barnett est secrétaire en chef du Trésor de 1974 à 1979, obtenant un siège au cabinet à partir de 1977, et est le bras droit de Denis Healey dans le gouvernement Callaghan. Pendant ce temps, il supervise l'élaboration de ce que l'on appelle la formule de Barnett par laquelle les dépenses publiques sont réparties entre l'Angleterre, l'Écosse, le Pays de Galles et l'Irlande du Nord. Il a ensuite plaisanté sur la forme étrange et inattendue d'immortalité qui lui était accordée en «ayant sa propre formule». À la suite de la loi de 1998 sur l'Écosse et de la dévolution, il fait valoir que la formule était injuste pour l'Angleterre et devrait être abandonnée ou révisée[3]. Il reprend ce point de vue en 2014 peu de temps avant le Référendum sur l'indépendance de l'Écosse, qualifiant la formule d'insoutenable et affirmant qu'elle est devenue un embarras[4].
Il occupe la présidence du Comité des comptes publics de 1979 à 1983. Il publie un mémoire Inside the Treasury en 1982, décrivant son expérience en tant que secrétaire en chef[5]. Le siège des Communes de Barnett ayant été aboli par des changements de limites, il est créé pair à vie comme baron Barnett, de Heywood et Royton dans le Grand Manchester, le 30 septembre 1983. Il siège à des comités spéciaux de la Chambre des lords, notamment le Comité de l'Union européenne, le Comité des affaires économiques et le Comité de politique monétaire de la Banque d'Angleterre[1]. Il est nommé vice-président du conseil des gouverneurs de la BBC par le premier ministre conservateur Margaret Thatcher en 1986 et occupe le poste jusqu'en 1993. Il est décédé le 1er novembre 2014, à l'âge de 91 ans.