Assume this script is run by 5 different users concurrently
You mean there are 5 different users executing Terraform on different hosts? From Terraform’s perspective there is only ever one “user”, the user currently executing the Terraform binary. It does not know what other process may exist elsewhere, nor does it know what an aws_iam_user is, that is just like any other resource as far as Terraform is concerned.
Terraform communicates with a plugin (a provider) using grpc, and the plugin process is what runs the server side of the connection. There is no defined number of processes being run, Terraform will start and stop them as needed for various purposes during execution.
Your example here will use only a single configured AWS provider at a time, since you have only a single provider configuration.