You can change the role under which a Suitelet executes, so that sounds like it would work for you. A client script will always execute with the permissions of the current user so you would still need to give edit access to the user.
Depending on your UX goals, you could have the client script make an ajax call to a Suitelet with elevated permissions acting as an API endpoint.