You can have the boat lifted by a travel lift
that has load cells, and get an approximate answer that way. If you want more accuracy, you need a crane with a scale.
The Erie Canal used to weigh barges to calculate fees
by putting them in a lock and measuring the water
that ran out an using the volume calculation.
I'm not kidding about the acceleration measurement. You need a fixed dock
with a piling 10 feet above the water
, about 10 feet of space for the boat to move, a 50 pound weight, two pulleys and a line. The line goes from the bow to a pulley at bow height, up to a pulley at the top of the piling, then down to the weight. Put a stick with distance markings on the piling so you can see how far the weight falls. Let the weight pull the boat forward for 10 seconds, and record
where the weight is each second. For a 15 ton boat, the weight should have moved about 2.7 feet after 10 seconds, and should be going about 0.5 ft/sec. Stopping it is your problem, but I'd recommend a stern line. Needless to say, you need flat water and a windless day with no surge for best results.
The weight of the boat = W*2*g*t^2/d where
W is the pulling weight
g is the acceleration of gravity
t is the time
d is the distance traveled
You pick the units you are used to, and I'd probably reduce the results by 5% due to friction in the pulleys and drag on the boat.