Технически можно через WithValue, но не рекомендуется. Контекст может копироваться, отменяться и жить дольше одной операции - владение мьютексом или каналом становится неочевидным. Лучше передавать примитивы синхронизации явно аргументами или полями структуры.