I would like to know if it's possible that if I press a toggle switch (to turn on/off the Arduino power), to first call a function in the sketch, such as "SaveBeforeShutDown()", and only turn off the Arduino one second after to let the function enough time to finish, or better if possible, turn off immediately when the function has exited.
You will need a switch to turn off the power. Something like this:
 if (button_pressed(power_off)) { //power off button pressed
  do_something();
  //wait(duration_1s); //wait for a second
  turn_power_off(); //turn off power
 }
The switch is turned off by a pin, activated by turn_power_off().
A more interesting case is to use one button to turn on / off to the mcu. Here, you need a switch (or a switch-able power source), and a self-locking mechanism (implemented in software).
A while ago somebody posted a solution which used a capacitor+diode on the power supply to keep the Arduino running for a moment after the power supply was disconnected, and monitored the supply voltage upstream of the cap so that it had advance warning when the power supply was about to fail. It only ran on for a moment, but that was apparently long enough to save its state to EEPROM so that it could be reloadedwhen the power supply was restored.