Is it ok if i give 20 mhz quarz insted of 16 mhz for arduino with atmel 326?

No - the timing will all be wrong.

You can modify your board files for this though

I think you also need to modify the boot loader as well.

If you don't need serial input/output, you can just program / test the Arduino with the regular 16 MHz crystal, then switch to a 20 MHz crystal when you deploy. (But as mentioned before, the timing will be off for serial - and "milliseconds" will run fast as well.)