Looks like the PATH set for your application is picking up the operating system tar command rather than the GNU version of tar, the latter may have been installed with your application, perhaps?
# type tar
type: Command not found.
# which tar
/usr/bin/tar
# tar --version
bsdtar 2.5.5 - libarchive 2.5.5
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
# updatedb
updatedb: Command not found.
With updatedb you probably mean the locate database?
Also
# locate tar | grep bin
gave a fairly lengthy output, you probably had something specific in mind?
Finally:
# whereis tar
tar: /usr/bin/tar /usr/share/man/man1/tar.1.gz /usr/src/usr.bin/tar
So it looks like by default you are using /usr/bin/tar and that is the tar command for BSD, the locate command should tell us where alternative tar commands are installed, whereis shows that no other tar commands are in the PATH.
$ locate tar | grep bin
Was an attempt to list only tar commands, not manpages, source code, etc.
$ locate tar | grep bin | grep "tar$"
Will hopefully produce a shorter list, it will exclude all the commands with "start" in them!
gtar is NOT a dependencies of xarchiver, so it is normal you can't find it installed.
Maybe you have any options in xarchiver to configure tar options ?
I recommend you contact the port manager of xarchiver, and tell him about the issue, he should be able to edit the port so that it uses the bsdtar with alternative switches, or use the gtar.
I will look into your suggestion and get back with issues, if any.
EDIT: So you are suggesting that the following lines should be executed before the paragraph of code below is executed?
pkg_add -r gtar
You may want to know that the archive functionality is installed as follows: