So Godot supports instancing. At least for static objects, and with the same material. I got up to 100,000 spinning cubes with the same texture, and I still had like 900 FPS. I tried with 1 million and it crashed my computer. But in the hundreds of thousands of objects is possible, even on mid-range hardware at 60 FPS, with the right optimizations. For example, if they are not animating, if they all have the same texture, though you can I think modify some properties (maybe a texture atlas with UV offset would work). And general rotation and position stuff. Having them be unique and animating is a huge issue, not just for Godot.
As I said, even AAA games have a lot of problems with this. Cyberpunk 2077 now has about 100 character on screen, but it didn't when it released. The city was much more sparse in the 25 - 50 character range, and it caused slow down. So this is difficult even for AAA devs with their own engine. I think anything is possible, with any engine or no engine. It just depends on how hard or time consuming it is, how much you have to use add-ons or modify the code, etc. I haven't looked into this aspect deep enough in Godot to say one way or the other.