It is certainly possible to implement fork/join_none with join_any by inserting a null statement.
module top;
initial begin
fork
#10 $display("#10");
#20 $display("#20");
begin end
join_any
$display("done fork");
end
endmodule
And fork/join_any can be implemented with fork/join_none by adding an event.
module top;
event any;
initial begin
fork
begin #10 $display("#10"); ->any; end
begin #20 $display("#20"); ->any; end
join_none
@any;
$display("done fork");
end
endmodule
Is this question just to help your understand these fork constructs, or is there some other situation you are trying to avoid by replacing one construct with another? I would need to know more about that situation to help you further. There are subtle differences other constructs like disable fork and wait fork.