How do I build a system for localizing sound source?
I don't know about what microphones to use (any decent quality should do).

However, the idea is to use 2 microphones on a distance. By receiving signals from both microphones you can compare which one is receiving louder/has more delay and detect the source. You might have to move the microphones or play with distances to find the best results.

This is approximately the same as how humans hear from what direction a sound comes.

When using an Arduino you cannot record the sound, you could do with any sound recorder probably (depending on the memory to store the sound). However, you can easily log the microphone data (yes/no sound) and store that metadata on an SD card, and listen back via the voice recorder (unconnected).