Do I need CTS and RTS to be enable in order for Xbee to communicate over UART, or can I just use with Din and Dout?

You only need DI and or DO but for two way communications you need both DI and DO. DTR, RTS and CTS are only needed for sleeping and writing firmware to the module via the UART.

Well I am using the programmable Xbee so does that require the need of the flow control pins ( RTS, CTS) ?

If you want to change the firmware on that module or if you want to use sleeping at all, then yes it does.