This has been worked on in the past in #468 and was working at some point in time.
Currently it seems to be impossible again to build the demos / examples with static libraries, see colcon/colcon-core#140.
It should be possible to build at least the C++ demos and examples with static libraries using an invocation like this (assuming that only one RMW impl is available, e.g. FastRTPS):
colcon build \
--packages-up-to <demo/example-pkgs> \
--packages-ignore rosidl_typesupport_introspection_c rosidl_typesupport_introspection_cpp rosidl_generator_py rmw_fastrtps_dynamic_cpp \
--cmake-args -DBUILD_SHARED_LIBS=OFF --no-warn-unused-cli