Coming from C++ (with C experience too), I too was hesitant about Nim because of GC. But I can turn it off completely or even better "--gc=stack" which makes it behave like C++ (dealloc when going out of scope). The compiler is also good at telling you what calls use GC'ed memory, so you can work around them if necessary.
But even with GC on, Nim is super fast. I use it in real time rendering and I honestly didn't see any significant performance loss. In fact, it made some routines much faster because the Nim compiler produced much better C code than I ever did.