Event library that you must use:
package0 and replication.
Inside the replication library, you can find events related to the agents, including the distribution agent.
Key event for your case:
replication.agent_message.
This event captures messages that the replication agents (snapshot, log reader, distribution) generate. It is useful because many times the distribution agent writes to its output when the execution mode or the number of threads changes.
You can filter messages containing things like:
“Switching to single thread”
“Switched from multi-threaded to single-threaded”.
SQL Server doesn't have a direct event that says “switched from multi-threaded to single-threaded”, but the agent messages (which are captured with replication.agent_message) do reflect that behavior internally, and that's what you can track.