Well first off I'd like to say that not installing dependecies from packages is generally a bad idea. You can get all the required packages from ubuntu's repositories, put them on an usb key and redistribute (if you use one distro that is). The list of packages is relatively big, because of all the -dev ones (those are the development versions which enable to link against things etc.) but it should be doable. The "top" of the chain is gtk and gdk_pixbuf packages (not exact names). If you look at those in synaptic you will see what they depend on and can make a list to download (you don't need to go down to all, but most -dev ones surely). This isn't easy tho, Linux without net is.. well in all honesty, useless.
The easiest way to find out all the required packages for a given ubuntu distro is to install a clear installation, and then add the "top level" -dev packages (libgtk-dev and libgdk_pixbuf-dev) and see all the packages which get installed too. You can then get them from the dir in which synaptic downloads them to. A bit far fetched, but 100% ensured functionality

(for same distro version)
All basic (that is, not using additional 3rd party components) lazarus projects should have same dependencies.
For cross-compiling, the resulting binary shouldn't need anything on windows to run, but to get it you need to first cross-compile the FPC RTL, FCL and then LCL for windows (32 I guess?). These steps are presented in Marco's document here:
http://www.stack.nl/~marcov/buildfaq.pdfNOTE: the buildfaq is a bit outdated and also uses "gmake" instead of make (because marco is BSD user, and GNU make is secondary there). For windows, as far as I know, you don't need external utilities since FPC 2.2.0, but I'm not expert at this...