Dynamic 404 page content while still keeping 404 status code?

You could copy the php/html from your singular.php/page.php to 404.php. Then replace the content loop with echo apply_filters('the_content', $page->post_content); as mrben522 suggested.

Using the code from codex as an example,

<?php
/**
 * The template for displaying 404 pages (Not Found)
 *
 * @package WordPress
 * @subpackage Twenty_Thirteen
 * @since Twenty Thirteen 1.0
 */

get_header(); ?>

<div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">

        <header class="page-header">
            <h1 class="page-title"><?php _e( 'Not Found', 'twentythirteen' ); ?></h1>
        </header>

        <div class="page-wrapper">
            <div class="page-content">
                <?php 
                    $page_id = get_post(100); // change ID;
                    echo apply_filters('the_content', $page->post_content); // This is where the magic (should) happen
                ?>
            </div><!-- .page-content -->
        </div><!-- .page-wrapper -->

    </div><!-- #content -->
</div><!-- #primary -->