Q:

Where does the time from `std::chrono::system_clock::now().time_since_epoch()` come from and can it block if accessed from multiple threads? 

Where does std::chrono::system_clock::now().time_since_epoch() come from? 
That is, is it a direct interface with a crystal oscillator (physical component)?  
If it is a crystal oscillator, is there one per core or one for all cores? 
If there is one oscillator for all cores, can it block threads if multiple threads access it at the exact same time (low latency environment)? 
If there is a crystal oscillators for each core how are they all synchronised? 

A:

C++ Standard does not care about how system_clock::now() gets implemented.  It merely specifies

Returns a time_point object representing the current point in time. 

A typical C++ standard library implementation would rely on the underlying OS system call to get the actual system clock value to construct the time_point object. 
In terms of hardware implementation you will need to take hardware architecture into consideration.  But typically maintenance cost for system clock is always there, no matter how many processes / threads are reading it.  And system clock acquiring are implemented as a lightweight routine which will not result in thread block and will not become the performance bottleneck in a multithreaded program.  
Besides, std::chrono::system_clock::now().time_since_epoch() is a simple observer method which only returns the embedded duration object inside the time_point object returned by std::chrono::system_clock::now(), which involves only C++ struct copying.