This is why traders try to automate the synchoronization between charts using MQL and external libraries. Some of them are heavy and feature-rich (which seems an overkill for me), and some are not open source (and I think most of you prefer an open source solution than a black box). As a result, I made a little utility script, which helps me in solving this issue. Its source code is attached. It's tested in MetaTrader 4, but should hopefully work in MetaTrader 5 as well.
The usage is simple. Drop the script on charts you want to synchronize. All charts for the same symbol/timeframe running the script will automatically adjust themselves to position and scale applied manually to any one of them. The time of refreshes is defined in the source as half of a second, but you may change it to your needs. Please note that increasing the number of synchronized charts may lead to noticable delays in refreshes and higher CPU usage.
Bar alignment is made by first (leftmost) visible bar. If you need to use rightmost bar as the synchronization point, feel free to adjust the source appropriately.