is it possible to add_action via template.php rather than function.php for this specific buddypress hook?

As cybmeta said – removing the tab does not block access to functionality.

The quick solution is to leave all the tabs in place, regardless of a user’s role.

Instead, add a conditional to an overloaded template.

For example, overload this template:

buddypress\bp-templates\bp-legacy\buddypress\members\single\profile\edit.php

And add a role-based conditional at the top. The conditional will control if the user sees the edit form or a message about permissions or a redirect or… .