Setting idle-timeout for root directly from the CLI is not possible, unfortunately.

I wrote an event script that does what you need.

Basically, every 5 minutes it checks:

 - If root is logged in via console (verified by a "-" in the FROM
   section of "show system users") 
 - If root is logged in, has it been
   idle for 15 minutes or more (checked in seconds, so 900 seconds). 
 - If
   all of those requirements are met, issue "request system logout
   terminal $TERM" (uses whatever terminal is present in the information
   the script pulled).

**Non-XML version of what is pulled:**

    jhead@VPN-EP1> show system users
     4:02PM  up 2:56, 2 users, load averages: 0.07, 0.02, 0.00
    USER     TTY      FROM                              LOGIN@  IDLE WHAT
    root     v0       -                                3:55PM      6 cli
    jhead    p0       172.16.67.1                      1:09PM      - -cli (cli)

You can see a closer representation of what information the script parses by issuing:

    show system users | display xml

**The Script Itself: (filename: `terminate-idle-root.slax`)**

    /*
     * Author        : Jordan Head
     * Company       : Juniper Networks
     * Version       : 1.0
     * Last Modified : December 13, 2015
     * Platform      : all
     *
     * Description   : This event script periodically checks for root user sessions logged in
     * via out-of-band console that have been idle for 15 minutes or more, and terminates the session.
     *
     */
    
    version 1.0;
    
    ns junos = "http://xml.juniper.net/junos/*/junos";
    ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
    ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
    
    import "../import/junos.xsl";
    
    var $event-definition = {
      <event-options> {
        <generate-event> {
          <name> "5-minute-delay";
          <time-interval> "300";
        }
        <policy> {
          <name> "terminate-idle-root";
          <events> "5-minute-delay";
          <then> {
            <event-script> {
              <name> "terminate-idle-root.slax";
            }
          }
        }
      }
    }
    
    match / {
        <op-script-results> {
    
          var $root_user = "root";
          var $idle_time = "900";
          var $from = "-";
    
          var $show-system-users-output = <get-system-users-information>;
          var $show-system-users = jcs:invoke($show-system-users-output);
    
          for-each ($show-system-users/uptime-information/user-table/user-entry) {
              var $user_check = ./user;
              var $idle_time_check = ./idle-time/@junos:seconds;
              var $from_check = ./from;
              var $tty = ./tty;
                  if ($user_check == $root_user && $idle_time_check >= $idle_time && $from_check == $from) {
                      var $terminate_root_console = <command> "request system logout terminal " _ $tty;
                      expr jcs:invoke($terminate_root_console);
                  }
          }
        }
    }

**Applying the Script:**

If the commit is successful, it means that the script's syntax is valid.

    jhead@VPN-EP1> configure exclusive
    warning: uncommitted changes will be discarded on exit
    Entering configuration mode
    
    [edit]
    jhead@VPN-EP1# set event-options event-script file terminate-idle-root.slax
    
    [edit]
    jhead@VPN-EP1# commit and-quit
    commit complete
    Exiting configuration mode

Hope this helps, feel free to comment if anything is unclear and I'll be happy to update my answer.

Just a final note: @bob is right, that should work.  I've just seen console appliances that maintain a connection, but allow access to the box itself so it wouldn't terminate.  If you're doing a typical setup, his solution will work - but I've seen implementations where it wouldn't.