Mac OS X has the default of case insensitive HFS+ file system and it seems to me that although case sensitive HFSX+ is supported, the OS is not heavily tested on it. E.g. FileVault won't work with it at all. I opted to case sensitive disk images.
Create and populate /usr/pkgsrc
# mkdir /Library/Images
# hdiutil create -volname pkgsrc -size 10g -type SPARSEBUNDLE -fs HFSX /Library/Images/pkgsrc
# mkdir /usr/pkgsrc
# hdiutil attach /Library/Images/pkgsrc.sparsebundle -nobrowse -mountpoint /usr/pkgsrc -owners on
# cd /usr
# cvs -z3 -d anoncvs@anoncvs.NetBSD.org:/cvsroot co -P pkgsrc
# cd /usr/pkgsrc
# cvs -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip login
CVS password:
# cvs -z3 -d:pserver:anonymous@pkgsrc-wip.cvs.sourceforge.net:/cvsroot/pkgsrc-wip co -P wipCreate /usr/pkg
# hdiutil create -volname pkg -size 10g -type SPARSEBUNDLE -fs HFSX /Library/Images/pkg
# mkdir /usr/pkg
# hdiutil attach /Library/Images/pkg.sparsebundle -nobrowse -mountpoint /usr/pkg -owners onJvvm figured out how to mount the images at boot time. 
http://julipedia.blogspot.com/2007/04/mounting-volumes-on-mac-os-xs-startup.html. I made a few changes. There is a configuration file for mounting images:
/etc/hditab:# HD Image Tab configuration file
# Imagefile             options (for hdiutil attach)
/Library/Images/pkgsrc.sparsebundle -nobrowse -mountpoint /usr/pkgsrc -owners on
/Library/Images/pkg.sparsebundle -nobrowse -mountpoint /usr/pkg -owners on
Using jvvm's example I made a startup item directory /Library/StartupItems/DiskImages/ with the following files in it. The latter needs to be executable.
/Library/StartupItems/DiskImages/StartupParameters.plist:{
Description = "Automatic attachment of disk images";
OrderPreference = "First";
Uses = ("Disks");
}/Library/StartupItems/DiskImages/DiskImages:#! /bin/sh
. /etc/rc.common
basePath="/Library/StartupItems/DiskImages"
tabFile="/etc/hditab"
doCompact() {
       cat $tabFile | while read image rest ; do
               image=${image%%#*}
               [ -z "$image" ] && continue
               hdiutil compact $image
       done
}
StartService() {
       doCompact
       cat $tabFile | while read line ; do
               line=${line%%#*}
               [ -z "$line" ] && continue
               hdiutil attach $line
       done
}
StopService() {
true
}
RestartService() {
true
}
RunService "$1"
The images should be automatically mounted at boot. Test the script by umounting /usr/pkgsrc and /usr/pkg manually and running:
# /Library/StartupItems/DiskImages/DiskImages start
Next pkgsrc needs to be bootstrapped
# cd /usr/pkgsrc/bootstrap# ./bootstrap --prefix /usr/pkg --pkgdbdir /usr/pkg/pkgdb --sysconfdir /usr/pkg/etc --varbase /usr/pkg/varTo add pkgsrc in your path create file 
/etc/path.d/pkgsrc with lines /usr/pkg/bin and /usr/pkg/sbin. Manual page search path is set in file 
/etc/manpath.d/pkgsrc with line /usr/pkg/man. There is a default mk.conf in /usr/pkg/etc/mk.conf. I made the following changes to mine.
/usr/pkg/etc/mk.conf:COPTS?= -pipe ${DEFCOPTS}
CFLAGS+= -pipe
.ifdef BSD_PKG_MK       # begin pkgsrc settings
PKG_DBDIR=              /usr/pkg/pkgdb
LOCALBASE=              /usr/pkg
VARBASE=                /usr/pkg/var
PKG_TOOLS_BIN=          /usr/pkg/sbin
PKGMANDIR=              man
TOOLS_PLATFORM.pax?=            /usr/pkg/bin/pax
TOOLS_PLATFORM.tar?=            /usr/pkg/bin/tar
#MAKE_JOBS ?=    2
WRKOBJDIR ?=    /usr/pkg/var/obj
MASTER_SORT ?=  .fi .se .no .ee
PKG_DEFAULT_OPTIONS += inet6
_ACCEPTABLES=yes
.endif                  # end pkgsrc settings
I used sparse images here, because I'm short on disk space but there are cons; Sparse images cause disk fragmentation and removing files from the image doesn't free the space until the image is compacted. If you really want to tune it up make ~1GB DMG for /usr/pkgsrc, big sparce image for /usr/pkg and a ~2GB /usr/pkg/var DMG for changing data. The set WRKOBJDIR?=/usr/pkg/var/obj and DISTDIR?=/usr/pkg/var/distfiles in mk.conf.
Comments and hints are very welcome :)