There is no direct way of reducing the number of worker threads. Btw, I am assuming you are using gRPC version earlier than the latest 1.6.
If so, when you are using a Synchronous grpc server, it by default creates as many "completion queues" as the number of cores (In the latest version of grpc, we only create ONE completion queue).
Each completion queue will have "atleast one" worker thread polling for incoming new RPCs (i.e If a worker thread is busy handling an RPC it just received, we create a new worker thread to poll for new RPCs. So clearly, on a server that handles multiple RPCs in parallel, the number of worker threads at any point may be greater than 1).
In anycase, you can reduce the "minimum number of workers" to 1 by having the Sync server create only one completion queue the following way: