Even Simula, the original OOP language, is much closer to the procedural-ish OOP than to Smalltalk.
You can simulate request-response with it, using a channel to go one way and another the other way, but it can get pretty convoluted.
The thing I wasn't asking was "can I implement a language that can do this in Java?" which is why I don't think the Turing completeness comment is particularly relevant.
The true goal of event-driven is the separation of concenrns, so you don't call `execute_payment`, `send_confirmation_email`, `include_in_report_dashboard` etc inside a `complete_order`.
Instead, you emit "order_issued" event and all subscribers can act based on the event, completely unknown from `complete_order`.
At least that is how I understand it.
Then all the languages that support Component Programming via traits, interfaces, data classes, OS ABI like COM, or whatever they feel like calling it, do as well.