You should check if most of your time are being spent on CPU or in I/O. Either way, there are ways to improve it:
A: don't compress
You didn't mention "compression" in your list of requirements so try dropping the "z" from your arguments list:
tar cf. This might be speed up things a bit.
There are other techniques to speed-up the process, like using "-N " to skip files you already backed up before.
B: backup the whole partition with dd
Alternatively, if you're backing up an entire partition, take a copy of the whole disk image instead. This would save processing and a lot of disk head seek time.
tar and any other program working at a higher level have a overhead of having to read and process directory entries and inodes to find where the file content is and to do more head disk seeks, reading each file from a different place from the disk.
To backup the underlying data much faster, use:
dd bs=16M if=/dev/sda1 of=/another/filesystem
(This assumes you're not using RAID, which may change things a bit)