They both are memory safe and both use reference counting when the static mechanisms don't suffice. How far you can get without reference counting depends on the coding style and problem domain. If you have to use the refcounting then Rust quickly becomes tedious with its `Arc<Cell<T>>` verbosity.
Currently Rust does the pointer "borrowing" better than Nim and also the nil/null checking but Nim is catching up. Nim is frequently regarded to be much easier to use. The thread safety is accomplished in different ways, in Rust the refcounts become atomic operations, in Nim full subgraphs are moved between threads. However, this is still terribly under-developed, in Nim version 1.0 message passing was used instead with deepcopy of messages. It always was memory and threadsafe too. Nim does not focus on memory safety only, it can also prevents deadlocks at compile-time, can check for out-of-range integer values and with ORC can deal with graphs that form cycles.