Synchronous means the processing happens in a single requester context, and asynchronous processing means giving the execution of the request to a batch requester.
To understand the difference, take an example of a SERVICE-REST rule.
if you configure the execution mode as synchronous, then the request will be handled and processed in the single requester context.
if you configure the execution mode as asynchronous(queue for execution), then the request will be handed out to queue and processed by the batch or agent requester.
To elaborate, synchronous processing allows the processing to be completed before the response is sent to the consumer, and in asynchronous processing where the request is queued and the consumer doesn't need the processed response (kind of fire and forget business scenarios).