ATL is just a framework / library on top of C++. At the end of the day there is no fundamental difference between a plain old C++ app and an ATL one. An ATL tends to associate with COM programming but that is not a necessity.
.Net on the other hand is a completely separate runtime. It compiles down to IL and runs in a virtual machine (the CLR).
As to which is smaller or faster. There are no hard truths here but in general
- C++ EXE / DLL tend to be smaller for equivalent size apps
- C++ startup time tends to be faster than .Net because it doesn't need a JIT
- .Net apps tend to have less issues around memory management, leaks and corrutpion as copmared to C++
- Languages targeting .Net tend to be easier to learn than C++