Modeling and simulation of cyber-physical devices is difficult because of their heterogeneity: they mix discrete-event (DE) hardware and software with continuous time (CT) physical processes. DEs simulation progresses by discrete timesteps while CT simulation does so in a time continuum; despite different time representations, data must be transmitted between both domains at precise points in time. Synchronizing these domains in an efficient and accurate manner is the core problem of CT and DEs simulation. As a design tool, SystemC AMS introduces a synchronization strategy that is based on fixed timesteps that proves useful for a large set of use cases. But this strategy generates inaccuracies that cannot be overcome without penalizing simulation speed. In this article, we propose a new CT and DEs synchronization algorithm on top of the SystemC framework and prove its causality, completeness, and liveness. We also propose an adaptive algorithm to adjust the synchronization step to provide near to optimum simulation speed. We test our solution with three demanding case studies that include nonlinear equations, Zeno behavior, and high sensitivity to accuracy errors. Results show that our algorithm circumvents these challenges, attains high accuracy with respect to established tools, and improves simulation speed. This work aims at enlarging the modeling and simulation capabilities of SystemC as a heterogeneous design tool.