For starters:
The whole point of htaccess is that you don't need to restart the server. You do need to set
AllowOverride [httpd.apache.org]
to the appropriate values.
Link is to 2.2; change to 2.4 if appropriate. If you don't, htaccess won't work, where "won't work" = "will be ignored as if it did not exist at all". If you're testing out new rules, htaccess is useful precisely because you don't have to keep stopping and starting the server.
Anything that can be done in htaccess can be done in the config file. The reverse is not true.
I have about 0 experience with apache, I've always ran things on a windows box.
Does "windows box" here mean IIS? You can run Apache on any OS.
Now then:
You cannot use mod_alias (Redirect by that name). It has to be done in
mod_rewrite [httpd.apache.org] (RewriteRule with [R] flag).
Change 2.2 to 2.4 if necessary, but differences aren't significant here. The basic pattern for what you want to do is
RewriteCond %{REQUEST_URI} !/lab
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
Ordinarily I'd look at constraining the rule to requests for pages. But if it's going to a whole different domain, non-page requests will never see the rule in the first place.
That's assuming the target domain lives on a different server and/or is under a different htaccess file. If the new requests pass through the same config or htaccess file, you will need a further RewriteCond looking at %{HTTP_HOST} unless you can put the rule inside a <Directory> section (config only). If you do go with htaccess permanently, put each domain's RewriteRules in a separate htaccess file.